Texas Tech University
Department of Computer Science
Instructor: Prof. Tommy Dang
Email: tommy.dang@ttu.edu
Office hours: 10am - 11am TR and available to talk right after the class
Office: EC 306C

Course Name: Operating Systems
Course Number: CS 4352
Semester: Fall 2018
Classroom: Education 00001
Class hours 11:00 am - 12:20 pm TR Aug 27, 2018 - Dec 12, 2018

Tutorial Assistant (TA): Lino Virgen
Email: lino.virgen@ttu.edu
Office hours: 10:00 am - 11:00 am TR, EC 305

Catalogue Listing:
  • Concepts and design of different components of operating systems.
  • Topics addressed include process management, scheduling and resource management, file systems, I/O, and security issues.

  • Course Description:
  • The objective of this course is to introduce various elements involved in the design and implementation of operating systems.
  • Computer use is required.

  • Key Topics:
  • Operating systems structure.
  • Operating systems design and implementation.
  • Processes and threads.
  • File systems.
  • Device management.
  • Paging and virtual memory.
  • Security.

  • Expected Prior Knowledge and Skills:
  • Students should have done programming in C on a UNIX/Linux platform.
  • They should have taken courses on data structures and algorithms.

  • Prerequisites:
  • CS3375 Computer Architecture
  • CS3364 Design and Analysis of Algorithms

  • Learning outcomes and assessment methods:
    Objective ABET Outcomes
    Understand the role of hardware in supporting operating system functions 1, 2
    Obtain in-depth understanding of process management and threading 1, 2
    Understand and differentiate the different memory management techniques 1, 2
    Understand, compare, and contrast the different data storage techniques 1, 2
    Construct a program module for an operating system 2, 6
    Become proficient system programmers 2, 6
    Assessment methods of all of the above: exams, assignments, class contributions, and projects.
    Ethical Conduct:
  • Students are expected to comply with the Texas Tech Code of Student Conduct in all aspects of this class. The Code of Student Conduct may be found from the Student Handbook and/or Office of Student Conduct.
  • In order to assure that all students have the opportunity to gain from time spent in class, unless otherwise approved by the instructor, students are prohibited from engaging in any other form of distraction, such as reading newspapers, working on other classes, taking cell phone calls, text messaging, and working on laptop computers. Inappropriate behavior in the classroom shall result, minimally, in a request to leave class.
  • Violations of conduct including academic dishonesty, foul language, and classroom citizenship are eligible to be reported to Student Judicial Services.

  • Evaluation:
    All submissions are graded according to the assignment guidelines, course policies, verbal instructions/explanations and materials given in class lectures. The numeric breakdown of your final grade is computed as follows:
    Percentage Notes
    Written assignments 24% four written assignments, weighing 6% each
    Programming projects 26% Two projects, weighing 13% each.
    Student can select to work on a group project instead: Monitoring HPCC server
    Midterm exam 20% covering chapter 1, 2, and 3
    Final exam 20% covering chapter 2, 3, 4, 5, and 9
    Class Participation: 10% Comments/Ask questions

      A = 85 - 100%
      B = 70 - 84%
      C = 55 - 69%
      D = 40 - 54%
      F = 0 - 39%

    Schedule:
    Topics
    Week 1: 8/28 and 8/30 - Course overview and Syllabus highlights
    Week 2: 9/4 and 9/6 - History of operating systems (1.1-1.2)
    - Computer hardware review and operating system concepts (1.3-1.5)
    Week 3: 9/11 and 9/13 - Shell programming and systems programming (additional materials)
    - System calls and operating system structure (1.6-1.8)
    Week 4: 9/18 and 9/21 - Processes, implementation, and thread model (2.1-2.2, additional materials)
    - Thread implementation and interprocess communication (2.2-2.3)
    Week 5: 9/25 and 9/27 - Semaphores and mutexes (2.3)
    - Scheduling (2.4)
    Week 6: 10/2 and 10/4 - Memory abstraction and virtual memory (3.1-3.3)
    - Page replacement algorithms (3.4, additional materials)
    Week 7: 10/9 and 10/11 - Paging systems and implementation (3.5-3.6)
    - Segmentation (3.7)
    Week 8: 10/16 and 10/18 - Midterm exam: class time, in classroom, covering chapter 1, chapter 2, and chapter 3
    - Files and directories (4.1-4.2)
    Week 9: 10/23 and 10/25 - File system implementation (4.3, additional materials)
    - Midterm review and assignments discussions
    Week 10: 10/30 and 11/1 - File system management and optimization (4.4)
    - Example file systems (4.5)
    Week 11: 11/6 and 11/8 - Principles of I/O hardware and software (5.1-5.2)
    - I/O software layers, disk structure, storage-class memory (5.3-5.4, additional materials)
    Week 12: 11/13 and 11/15 - Disk scheduling, clocks, clock synchronization (5.4-5.5, additional materials)
    - User interfaces and power management (5.6-5.8)
    Week 13: 11/20 - Security and basics of cryptography (9.1-9.5)
    Week 14: 11/27 and 11/29 - Authentication, attacks, and defenses (9.6-9.10)
    Week 15: 12/4 and 12/7 - Review and assignment discussions
    - Final Exam: 12/7 8am to 10am, in classroom, covering chapters 2, 3, 4, 5, and 9.
    Lecture slides will be provided few days before the classes via Blackboard

    Written Assignments:
    Assignments Date assigned Date due
    1. Chapter 1 and 2 9/18 9/28
    2. Chapter 3 10/4 10/13
    3. Chapter 4 10/24 11/4
    4. Chapter 5 11/10 11/20

    Programming Projects:
    Programming Projects Date assigned Date due
    1. Shell programming, process and multithreading on Linux 10/1 10/26
    2. Process and multithreading on Linux 11/1 12/1
    Topics and/or dates may be changed during the semester at the instructor’s discretion because of scheduling issues, developments in the discipline, or other contingencies.
    Textbooks:

    Modern Operating Systems

    by Andrew S. Tanenbaum
    Edition: 4th
    ISBN-10: 013359162X
    ISBN-13: 978-0133591620
    Publisher: Prentice Hall

    Attendance:
    Attendance is required. Part of your grade is from your in-class participation/contribution. So, you should consider to go the all classes, make comments, and ask good questions.
    Computer Usage:
    Detailed information regarding the access will be announced later.
    Absence due to religious observance:
    The Texas Tech University Catalog states that a student may be excused from attending classes or other required activities, including examinations, for the observance of a religious holy day, including travel for that purpose. A student whose absence is excused for this purpose may not be penalized for that absence and shall be allowed to take an examination or complete an assignment from which the student is excused. (see p.51)
    Absence due to officially approved trips:
    The Texas Tech University Catalog states that the person responsible for a student missing class due to a trip should notify the instructor of the departure and return schedule in advance of the trip. The student may not be penalized and is responsible for the material missed. (see p.50)
    Late Work:
    Assignments are due when specified, but will be accepted late (with a 10-20% penalty) until graded work is returned. If you know you will be absent ahead of time, turn your assignment in early.
    Student with Disabilities:
    The university is committed to the principle that in no aspect of its programs, shall there be differences in the treatment of persons because of race, creed, national origin, age, sex, or disability and that equal opportunity and access to facilities shall be available to all. If you require special accommodations in order to participate, please contact the instructor during office hours or by e-mail tommy.dang@ttu.edu. Students should present appropriate verification from Student Disability Services. No requirement exists that accommodations be made prior to completion of this approved university process.
    © Last revised: August 28th, 2018