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 306J

Course Name: Operating Systems
Course Number: CS 4352
Semester: Spring 2017
Classroom: EC201
Class hours 11:00 am - 12:20 pm TR Jan 19, 2017 - May 16, 2017

Teaching Assistant (TA): Judas Tadeo
Email: judas.tadeo@ttu.edu
Office hours: 2:00-3:00pm MWF, Eng Center 202

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
    Describe the historical development of operating systems j
    Understand the role of hardware in supporting operating system functions c, i, j
    Obtain in-depth understanding of process management and threading c, i, j
    Understand and differentiate the different memory management techniques c, i, j
    Understand, compare, and contrast the different data storage techniques c, i, j
    Construct a program module for an operating system c, i, j
    Become proficient system programmers c, i, j
    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% three projects, weighing from 8% to 10% each
    Midterm exam 20%
    Final exam 20%
    Class Participation: 10% Comments/Ask questions

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

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

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

    Programming Projects:
    Programming Projects Date assigned Date due
    1. Shell programming, process and multithreading on Linux 3/4 3/26
    2. Process and multithreading on Linux 4/1 5/1
    3. File system utility on Linux 4/1 5/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.

    Modern Operating Systems

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

    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.
    © Last revised: March 6th, 2017