COP 4600 Operating Systems

Spring 2022

Class description: Operating systems structure. Process management. Process scheduling. Memory Management. Virtual memory. I/O system. Performance Evaluation.
Instructor: Dr. Lotzi Bölöni
TAs and graders:
Office: HEC - 319 (this semester: online)
Phone: (407) 823-2320 (on last resort)
E-mail: Ladislau.Boloni@ucf.edu (preferred means of communication)
Web Site: http://www.cs.ucf.edu/~lboloni/Teaching/COP4600_Spring2022/index.html
The assignments and the other announcements will be posted on the course web site.
Classroom: CB2 O106
Class Hours: Mon, Wed 4:30PM - 5:45PM
Office Hours: Mon, Wed 6:00PM - 7:00PM
See webcourse announcement for Zoom link.
Pre-requisites: Some programming experience, general familiarity with computer organization and operating systems (as a user).
Textbook:
Grading:
  • Only full grades will be used based on the points obtained. A for 90 and above, B for 80-89, C for 70-79, F for lower than 70.
  • Points awarded: Midterm 1: 20 points, Midterm 2: 20 points, Homeworks/Projects: 20 points total, Final exam 40 points.
  • Some midterms, exams and homeworks will have bonus points, but no curve will be applied.
  • The exams will be administered through ProctorHub, and are open book, open notes.
  • Make up exams will be given only in justified cases.
Sample exams Exams given in Fall 2013
[sample] Midterm 1
[sample] Midterm 1 - with solutions
[sample] Midterm 2
[sample] Midterm 2 - with solutions
[sample] Final
[sample] Final - with solutions
Note: you should not expect that the new exams are just variations with different data.
Integrity: The department, college, and University are committed to honesty and integrity in all academic matters. We do not tolerate academic misconduct by students in any form, including cheating, plagiarism and commercial use of academic materials. Please consult the Golden Rule Handbook for the procedures which will be applied.
Verification of engagement: As of Fall 2014, all faculty members are required to document students' academic activity at the beginning of each course. In order to document that you began this course, please complete the following academic activity by the end of the first week of classes, or as soon as possible after adding the course, but no later than August 27. Failure to do so will result in a delay in the disbursement of your financial aid.
To satisfy this requirement, you must finish the first quiz posted online. Log in to Webcourses, choose COP 4600, and submit your answers online.
Course accessibility: The University of Central Florida is committed to providing access and inclusion for all persons with disabilities. Students should connect with Student Accessibility Services (Ferrell Commons 185, sas@ucf.edu, phone (407) 823-2371). Through Student Accessibility Services, a Course Accessibility Letter may be created and sent to professors, which informs faculty of potential access and accommodations that might be reasonable. If you are a deployed active duty military student and feel that you may need a special accommodation due to that unique status, please contact your instructor to discuss your circumstances.
Campus safety: Emergencies on campus are rare, but if one should arise in our class, everyone needs to work together. Students should be aware of the surroundings and familiar with some basic safety and security concepts.
  • In case of an emergency, dial 911 for assistance.
  • Every UCF classroom contains an emergency procedure guide posted on a wall near the door. Please make a note of the guide's physical location and consider reviewing the online version.
  • If there is a medical emergency during class, we may need to access a first aid kit or AED (Automated External Defibrillator). To learn where those items are located in this building, see the link (click on link from menu on left).
  • To stay informed about emergency situations, sign up to receive UCF text alerts by going to my.ucf.edu and logging in. Click on "Student Self Service" located on the left side of the screen in the tool bar, scroll down to the blue "Personal Information" heading on your Student Center screen, click on "UCF Alert," fill out the information, including your e-mail address, cell phone number, and cell phone provider, click "Apply" to save the changes, and then click "OK."
Zoom for Remote Instruction Because of the continued remote instruction requirement due to the COVID-19 pandemic, this course will use Zoom for synchronous ("real time") class meetings.

Please take the time to familiarize yourself with Zoom by visiting the UCF Zoom Guides at . You may choose to use Zoom on your mobile device (phone or tablet).

Things to Know About Zoom:

  • You must sign in to my Zoom session using your UCF NID and password.
  • The Zoom sessions are recorded.
  • Improper classroom behavior is not tolerated within Zoom sessions and may result in a referral to the Office of Student Conduct.
  • You can contact Webcourses@UCF Support at if you have any technical issues accessing Zoom.
COVID-19 Statements University-Wide Face Covering Policy for Common Spaces and Face-to-Face Classes

To protect members of our community, everyone is required to wear a facial covering inside all common spaces including classrooms (https://policies.ucf.edu/documents/PolicyEmergencyCOVIDReturnPolicy.pdf. Students who choose not to wear facial coverings will be asked to leave the classroom by the instructor. If they refuse to leave the classroom or put on a facial covering, they may be considered disruptive (please see the Golden Rule for student behavior expectations). Faculty have the right to cancel class if the safety and well-being of class members are in jeopardy. Students will be responsible for the material that would have been covered in class as provided by the instructor.

Notifications in Case of Changes to Course Modality

Depending on the course of the pandemic during the semester, the university may make changes to the way classes are offered. If that happens, please look for announcements or messages in Webcourses@UCF or Knights email about changes specific to this course.

COVID-19 and Illness Notification

Students who believe they may have a COVID-19 diagnosis should contact UCF Student Health Services (407-823-2509) so proper contact tracing procedures can take place.

Students should not come to campus if they are ill, are experiencing any symptoms of COVID-19, have tested positive for COVID, or if anyone living in their residence has tested positive or is sick with COVID-19 symptoms. CDC guidance for COVID-19 symptoms is located here: (https://www.cdc.gov/coronavirus/2019-ncov/symptoms-testing/symptoms.html)

Students should contact their instructor(s) as soon as possible if they miss class for any illness reason to discuss reasonable adjustments that might need to be made. When possible, students should contact their instructor(s) before missing class.

In Case of Faculty Illness

Depending on the course of the pandemic during the semester, the university may make changes to the way classes are offered. If that happens, please look for announcements or messages in Webcourses@UCF or Knights email about changes specific to this course.

Course Accessibility and Disability COVID-19 Supplemental Statement

Accommodations may need to be added or adjusted should this course shift from an on-campus to a remote format. Students with disabilities should speak with their instructor and should contact sas@ucf.edu to discuss specific accommodations for this or other courses.


Syllabus

Date
Topic
Lecture Notes, Readings, Homeworks
Mon. Jan. 10
Class organization, exams, grading
Introduction
  • What is an operating system?
  • Computer system structure
  • Interrupts
[slides] Introduction to operating systems
[homework] Homework 1 - due Jan. 15
[homework] Homework 2 - due Jan. 24
Wed. Jan. 12
Introduction (cont'd)
  • I/O and direct memory access
  • User mode and kernel mode
  • Virtualization
  • Cloud computing
[slides, optional] Early OS History
Mon. Jan 17
Martin Luther King Day - no class
Wed. Jan. 19
Operating system structures
  • Operating system services
  • Command line and graphical user interface
  • System calls
[slides] Operating system structures
Mon. Jan. 24
Operating system structures (cont'd)
  • System programs
  • OS structure: monolithic, microkernel, modules

Wed. Jan. 26
Processes
  • Process concept, memory layout
  • Process states, context switch
[slides] Processes
Mon. Jan. 31
Processes (cont'd)
  • Process creation
  • Interprocess communication
Wed. Feb. 2 Threads and concurrency
  • Motivating threads, multithreaded server
  • User vs kernel threads, green threads
[slides] Threads
Mon. Feb. 7
Threads (cont'd)
  • Thread libraries, pthreads, Java threads
  • Thread termination, deferred cancellation

[homework] Homework 3 - due Feb. 28
Wed. Feb. 9
CPU Scheduling
  • CPU scheduler opportunities. Preemptive vs non-preemptive scheduling
  • Scheduling criteria
[slides] CPU Scheduling
Mon. Feb. 14

Wed. Feb. 16
CPU Scheduling (cont'd)
  • First come first serve
  • Shortest job first, shortest remaining time first
  • Round robin
  • Multi-level feedback queue

Mon. Feb. 21
Midterm 1 (covers intro to threads)
Wed. Feb. 23
Process synchronization
  • Race conditions and critical sections
  • Peterson's solution
  • Hardware instructions: test and set, compare and swap
  • Semaphores
  • Monitors
  • Liveness, deadlock, starvation
[slides] Process synchronization
Mon. Feb. 28
Process synchronization examples
  • Bounded buffer
  • Readers-writer problem
  • Dining philosophers
[slides] Synchronization examples
Wed. Mar. 2
Main memory
  • Address binding, protection
  • Logical vs physical address space, memory management unit
  • Contiguous allocation, internal and external fragmentation
[slides] Main memory
Mon. Mar. 7
Spring break
Wed. Mar. 9
Spring break
Mon. Mar. 14
Main memory (cont'd)
  • Paging
  • Translation lookaside buffer. Effective access time
  • Page table implementation: hierarchical, hashed, inverted

Wed. Mar. 16
Virtual memory
  • Demand paging
[slides] Virtual memory
Mon. Mar. 21
Virtual memory (cont'd)
  • Performance of demand paging
  • Copy on write
  • Page replacement algorithms: FIFO, Optimal, LRU

Wed. Mar. 23
Virtual memory (cont'd)
  • Tracking page replacement algorithms
  • Bélády's anomaly
  • Thrashing
  • Working sets
[homework] Homework 4 - due April 4.
[code] Santa.zip
Mon. Mar. 28
Mass Storage Systems
  • Hard disk architecture
  • Hard disk scheduling
  • Solid state disks, NVM scheduling
[slides] Mass storage systems
[homework] Homework 5 - due April 11.
Wed. Mar. 30
Midterm 2 - CPU scheduling to Virtual Memory
Mon. Apr. 4
Mass Storage Systems (cont'd)
  • Storage attachment: NAS, SAN, cloud
  • RAID

Wed. Apr. 6.
File system interface
  • The concept of a file, attributes
  • File access, index vs relative
[slides] File system interface
Mon. Apr. 11
File system interface (cont'd)
  • Directory structures

Wed. Apr. 13
File system implementation
  • Layered implementation
  • Allocation methods: contiguous, extent based, linked, file allocation table
  • Allocation methods: indexed
  • Free space management
  • Log structured systems
[slides] File system implementation
Mon. Apr. 18
Protection
  • Protection domains
  • Access matrix
[slides] Protection
Wed. Apr. 20
Protection (cont'd)
  • Role based access control
Mon. Apr. 25
Final exam review

Mon. May 2
Final exam
Monday, May 2, 2022
4:00 PM - 6:50 PM