Computer Systems
CSC-241
Computer Systems
CSC-241
Instructor:
Daniel A. Cañas
Office: Manchester #249
Phone: 758-5355
Office hours: T-TH 2-3 pm or by appointment
E-mail: canas@wfu.edu
Textbook:
Cañas D., Bulgren W. "Introduction to Operating Systems", CSC-241 class notes
Recommended Textbook:
Dhamdhere, D., “Operating Systems: A Concept-Based Approach”, McGraw Hill, 2009.
Lubomir B., Shaw A., "Operating Systems Principles", Prentice Hall, 2003.
Tanenbaum, A., "Modern Operating Systems", 3rd Edition, Prentice Hall, 2008.
Silberschatz, A., Galvin, P., Gagne, G., "Operating System Concepts", 7th Edition, Addison Wesley, 2005.
Lubomir B., Shaw A., "The Logical Design of Operating Systems", Second Edition, Prentice Hall, 1988.
Readings:
Cañas D., Argenta, C. "Using Semaphores and Shared Memory in a UNIX System V Teaching Environment".
Other papers from current literature.
Associated website: The CSC 241 Web page will be kept up to date and is your first source of information. All slides/assignments/homeworks/labs/ etc. will be posted. Most materials will be posted electronically rather than distributed as handouts.
Objectives:
Operating Systems hide low level details of real machines and provide high level services of all abstract machine. The purpose of the course is to provide the students with the necessary concepts which will enable them to:
-identify the abstract services common to all operating systems and explore the many variations possible.
-define the basic operating system components that carry out these machine independent abstractions.
-understand how the entire system fits together, not merely how one or two important parts interact.
-understand the means by which fundamental problems in operating systems can be analyzed.
Grading Policy:
Exams: 35%
Quizzes: 10%
Homework: 10%
Programs/Lab: 20%
Class Participation: 10%
Final exam: 15%
Pre-requisites: The student must have thorough knowledge of either C or C++. Programming assignments require in-depth knowledge of either of this programming languages.
* If you have a disability that may require an accommodation for taking this course, then please contact the Learning Assistance Center (758-5929) within the first two weeks of the semester.
Assignments:
Expect to be busy with assignments—most of the time there will be an outstanding assignment of some kind so plan accordingly. You should consider the due date to be a hard deadline. All assignments must be typed and turned in as instructed. No emails will be accepted. If you believe that you have some extenuating circumstances talk to me early and as much in advance before a deadline as possible— last minute requests are strongly discouraged.
Quizzes:
Weekly evaluations will be conducted. They will be un-announced, and can be given during the lecture or during the lab.
Cheating:
Don’t do it! If you get caught the consequences are very unpleasant. All submitted work must be exclusively your own and must have the following pledge written and signed:
“I have neither received nor given unauthorized aid on this assignment (test/homework/lab).”
Unsigned work will not be graded. Make sure you understand everything that you have submitted because you may be asked to explain it in case there are similarities that look less than accidental.
Cheating is (but not limited to):
• Copying, in whole or in part, the solutions of former students, current students, or any other human being, alive or dead. “Copying” includes transmission through email, the Web, smoke signals, or any other means.
• Obtaining solutions from the Internet or other archival sources.
You are not allowed to even look at a solution.
Discussing assignments at a high level for clarification, discussing problems concerning the computing equipment, and studying in groups for examinations is not cheating, but every word you type for programming and written assignments must be your own!
If you have any questions about acceptable teamwork - ask.
Class participation:
You are expected (and strongly encouraged) to attend and participate in all lectures, labs, web forums, blog and take notes as necessary. Experience shows that there is a strong correlation between regular class participation and good grades. Your attendance (physical presence) is not a formal requirement and, therefore:
• If you miss a class it is entirely your responsibility to find out about the covered material and catch up.
• If you miss a test due to a medical (or other) emergency be prepared to show some proof in order to get a make up.
Laptops:
Laptops are not allowed in the classroom unless you have been instructed to bring them to class/lab.
Food:
No food will be allowed in the classroom.
How to succeed in this class:
• Read the assigned topic from the book before and after the class. This is a requirement and your response to questions will affect your “Class participation” grade.
• Take advantage of the PDF slides to save effort in taking notes.
• Pay attention and participate in the class discussions. If you plan on snoozing in class you should consider taking rest in bed instead.
• Solve the problems after each covered chapter.
• If you don’t understand something get help early.
• Start work on assignments/homeworks/labs early.
• Come to office hours prepared with specific questions.
• Be honest with yourself and study at home—the university expects you to put in about 9 hours of preparation per week for this class for a C grade.
Etiquette:
Come to class on time—be considered to your fellow students. Coming late to class interrupts the lecture and distracts me and the students.
Special cases:
If you have any special circumstances come and talk to me privately this week. If circumstances arise during the semester inform me ASAP.
* If you have a disability that may require an accommodation for taking this course, then please contact the Learning Assistance Center (758-5929) within the first two weeks of the semester.
Privacy:
As a university policy, your grades and personal information are confidential – I will discuss them with you only in person (no email/phone inquiries).
TOPICS
1-Overview:
An overview of hardware components of a computer system. Definition of an Operating System and its functions. The importance of the Kernel, the services it provides and its role in hiding low level hardware dependencies. (Chapter 1)
2-Kernel:
Design approaches. (Chapter 2)
3-Process Synchronization:
Definition of a process. Process states. Process creation. Process and thread creation, interaction and control. (Chapter 3 and 5)
4-Scheduling:
Processor scheduling algorithms. Comparison and analysis of different alternatives. Interaction of processor management facilities with other kernel facilities. (Chapter 4)
5-Process Synchronization:
The Mutual Exclusion Problem. Concurrent Processes. Primitives for Mutual Exclusion. Competition and cooperation. (Chapter 6)
6-Deadlocks:
The deadlock problem. Prevention and avoidance. (Chapter 6)
*7-Message Passing:
Messages as a communication mechanism. Sending, storing and delivering messages.
8-Memory Management:.
Study and comparison of different memory management techniques. Their interface with other Kernel services. (Chapter 8)
9-Virtual Memory:
Algorithms for virtual memory management. Memory hierarchies, dynamic address translation, locality of reference. (Chapter 8)
10-File Systems:
Organization of the file system. File sharing. Logical and physical view.
11- Introduction to Computer Networks:
Types of networks, Network Topology, Routing, Network Protocols.
12- Reference Model:
OSI and TCP/IP reference model.