CISC3595 Operating Systems, Spring 2020

 

 Course Description: This course introduces students to the role of operating systems in the management of the hardware used to process application programs. Problems of resolving deadlock, exclusion, and synchronization, and inter process communication, queuing, and network control are covered. Topics include: process management, memory management, file management and security and systems programming.

 

Course Objectives: Develop an understanding of the role of operating systems in managing computer resources. Topics will include process management, memory management, file management and security.

Learning Outcomes: Students will understand and be capable of writing systems programs that include process manipulation and interprocess communication, memory management, and file system manipulation.

Prerequisite: CISC 2200 Data Structures and CISC3593 Computer Organization, or equivalent. 

Textbook: : Operating System Concepts, 10th Edition; Abraham Silberschatz, Greg Gagne, Peter B. Galvin; ISBN: 978-1-119-32091-3 (wiley link)  

Website: http://storm.cis.fordham.edu/harazduk/cs3595, (http://storm.cis.fordham.edu/harazduk/OS).

 

Section

R01

Lecture:

Mon/Thu 11:30-12:45pm, JMH 330

 

Instructor: Julie Harazduk 

Email: jharazduk@fordham.edu

Phone: (914)432-2768

 

Office hours: Mon/Thu 1:00-2:15 or by appointment best times are Mon 3-4; Tue 11:30; or Wed 11:30-1. in JMH 338

Specific Goals for the Course:

    Students will demonstrate the ability to... 

        Understand what an operating system is, the principal duties it performs, and how its activities are separated from user programs.

        Understand what a process is and how it is represented including the process memory map and the process control block.

        Understand the life-cycle of a process including creation, scheduling and termination events.

        Be capable of writing programs that initiate processes and synchronize them.

        Know the different kinds of inter-process communication and understand their characteristics, including message-passing and shared memory, synchronous and asynchronous, direct and indirect and buffered. 

        Understand the relationship between a thread and a process and be capable of writing programs with either.

        Understand how and why the Operating System schedules processes for execution and the terminology associated with scheduling such as preemptive/nonpreemptive, cpu bursts, scheduling latency, scheduling criteria such as throughput and waiting time and the use of Gantt charts.

        Known common scheduling algorithms such as first-come first-served, shortest job first, round robin, etc and the properties of each.

        Be capable of evaluating scheduling performance of an algorithm on a set of processes.

        Understand the concept of the critical region, problems that result from this and methods for addressing it in the context of classical problems such as producer-consumer and dining philosophers.

        Be capable of using critical region solutions in a programming example.

        Understand the role of memory management and techniques such as swapping, paging and segmentation.

        Understand what virtual memory is, how it is implemented, problems such as thrashing that may result and how to deal with them.

        Understand how a file system is represented and implemented.

        Know some typical file space allocation methods including linked, indexed and hierarchical and the characteristics of each.

Attendance: Attendance of lecture section is mandatory. However, illness, injuries and job interviews happen. Please inform the instructor of any absence, in advance if possible. If you miss class, get notes from a classmate. If you feel you are falling behind, please contact the instructor and arrange for a meeting. It's better to ask for help sooner rather than later!

Please refer to Fordham's policy on class attendance. The total number of absence (excused or unexcused absences) cannot exceed four.

Policies 

Communications for the class will take place through my website and email.

        All the class work you submit should be your own. Failure to cite sources is plagiarism. The internet may be used for doing background research but not to solve homework problems; that is also plagiarism and will be treated as such.

        Do not scan/photocopy material from the text or slides for use in your homework; recreate it yourself.

        No late assignments or make-ups without the prior agreement of the instructor and without very strong cause.

        Up to 6 assignments will be assigned approximately every two weeks. The written portions should be answered in good English (i.e., complete sentences, correct spelling, etc). The programming portions must run on STORM and be submitted using submission scripts to receive credit. If the program does not run correctly, include a README file that details what works and what does not if you want to receive partial credit.

        There will be a team programming project (team size of 3). It will be distributed after midterm and will be due the week of finals.

        All code should be well written and well documented. Programs will be graded on style as well as functional characteristics such as correctness and efficiency.

        Any student with a disability who may need accommodations in this class must present the instructor with an accommodation letter from the Office of Disability Services (718) 817-0655/(212)636-6282. 

Expectation: Students are expected to spend five hours (not including the lecture and lab section) each week in the assigned reading, homework and lab projects. Students are expected to read the assigned chapter of the textbook before the class. 

Late Assignment: Submissions turned in late will be penalized, and no submission is accepted more than one week after its due date. You can write to the instructor to ask for an extension of up to one week for reasons such as illness, heavy workload or other reasons. The maximum number of extensions per person is three.

Grading Criteria: Final grade is based on the weighted sum of the following course work, with the exception that if one fails the final exam with less than 50%, then one fails the class. 

 

Component

num. of assignment

weight

Note

Assignments

bi-Weekly

30%

Grading criteria            

Programs

3

20%

 

Team Project

1

10%

 

Midterm

1

20%

 

Final Exam

1

20%

 

Mapping from number grade to letter grade is as follows: 

A:100-90, B:90-80, C:80-70, D:70-60, F:60-0