COURSE INFORMATION
Course Title: OPERATING SYSTEMS
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 318 B 6 3 0 1 4 6
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Assoc.Prof.Dr. Blerina Zanaj bzanaj@epoka.edu.al , Friday 8:45-14:30
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: NA
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Compulsory
Study program: (the study for which this course is offered) Bachelor in Business Informatics (3 years)
Classroom and Meeting Time: PC LAb 3
Code of Ethics: Code of Ethics of EPOKA University
Regulation of EPOKA University "On Student Discipline"
Attendance Requirement:
Course Description: Basic roles of operating systems on computers. Concepts such as multiprogramming, time sharing, process management, threads, interposes communication, concurrency and synchronization, deadlocks, memory management and protection, file systems. Case studies on contemporary operating systems.
Course Objectives: To learn about the OS and their importance. The process execution in CPU and their scheduling.
BASIC CONCEPTS OF THE COURSE
1 Operating-System Operations
2 Resource Management
3 Security and Protection
4 Process Concept
5 Process Scheduling
6 Interprocess Communication
7 Threads & Concurrency
8 Multicore Programming
9 Multithreading Models
10 CPU Scheduling, Scheduling Algorithms
COURSE OUTLINE
Week Topics
1 Operating-System Operations, Resource Management (The concept of an operating system as primarily providing abstractions to application programs is a top-down view. An alternative, bottom-up, view holds that the operating system is there to manage all the pieces of a complex system. Modern computers consist of processors, memories, timers, disks, mice, network interfaces, printers, and a wide variety of other devices. In the bottom-up view, the job of the operating system is to provide for an orderly and controlled allocation of the processors, memories, and I/O devices among the various programs wanting them.)
2 Operating-System Services, System Calls (operating systems have two main functions: providing abstractions to user programs and managing the computer’s resources. For the most part, the interaction between user programs and the operating system deals with the former; for example, creating, writing, reading, and deleting files.Any single-CPU computer can execute only one instruction at a time. If a process is running a user program in user mode and needs a system service, such as reading data from a file, it has to execute a trap instruction to transfer control to the operating system. The operating system then figures out what the calling process wants by inspecting the parameters. Then it carries out the system call and returns control to the instruction following the system call. In a sense, making a system call is like making a special kind of procedure call, only system calls enter the kernel and procedure calls do not.)
3 Process Concept, Process Scheduling (all the runnable software on the computer, sometimes including the operating system, is organized into a number of sequential processes, or just processes for short. A process is just an instance of an executing program, including the current values of the program counter, registers, and variables. Conceptually, each process has its own virtual CPU. In reality, of course, the real CPU switches back and forth from process to process, but to understand the system, it is much easier to think about a collection of processes running in (pseudo) parallel than to try to keep track of how the CPU switches from program to program. This rapid switching back and forth is called multiprogramming.With the CPU switching back and forth among the processes, the rate at which a process performs its computation will not be uniform and probably not even reproducible if the same processes are run again. Thus, processes must not be programmed with built-in assumptions about timing
4 Interprocess Communication (Processes frequently need to communicate with other processes. For example, in a shell pipeline, the output of the first process must be passed to the second process, and so on down the line. Thus there is a need for communication between processes, preferably in a well-structured way not using interrupts.)
5 Communication in Client – Server Systems (Communication between processes takes place through calls to send() and receive() primitives. There are different design options for implementing each primitive. Message passing may be either blocking or non blocking— also known as synchronous and asynchronous.
6 Threads & Concurrency, Multithreading Models (When several processes each have multiple threads, we have two lev els of parallelism present: processes and threads. Scheduling in such systems differs substantially depending on whether user-level threads or kernel-level threads (or both) are supported.)
7 CPU Scheduling, Scheduling Criteria (When a computer is multiprogrammed, it frequently has multiple processes or threads competing for the CPU at the same time. This situation occurs whenever two or more of them are simultaneously in the ready state. If only one CPU is available, a choice has to be made which process to run next. The part of the operating system that makes the choice is called the scheduler, and the algorithm it uses is called the scheduling algorithm.Because CPU time is a scarce resource on these machines, a good scheduler can make a big difference in perceived performance and user satisfaction.)
8 Real-Time CPU Scheduling (A real-time system is one in which time plays an essential role. Typically, one or more physical devices external to the computer generate stimuli, and the computer must react appropriately to them within a fixed amount of time.Real-time systems are generally categorized as hard real time, meaning there are absolute deadlines that must be met—or else!— and soft real time, meaning that missing an occasional deadline is undesirable, but nevertheless tolerable. In both cases, real-time behavior is achieved by dividing the program into a number of processes, each of whose behavior is predictable and known in advance. These processes are generally short lived and can run to completion in well under a second. When an external event is detected, it is the job of the scheduler to schedule the processes in such a way that all deadlines are met.)
9 Synchronization Tools, The Critical-Section Problem (A cooperating process is one that can affect or be affected by other processes executing in the system. Cooperating processes can either directly share a logical address space (that is, both code and data) or be allowed to share data only through shared memory or message passing. Concurrent access to shared data may result in data inconsistency. Each process has a segment of code, called a critical section, in which the process may be accessing — and updating — data that is shared with at least one other process. The important feature of the system is that, when one process is executing in its critical section, no other process is allowed to execute in its critical section. That is, no two processes are executing in their critical sections at the same time. The critical-section problem is to design a protocol that the processes can use to synchronize their activity so as to cooperatively share data.)
10 Peterson’s Solution, Semaphores (a classic software-based solution to the critical-section problem known as Peterson’s solution. Because of the way modern computer architectures perform basic machine-language instructions, such as load and store, there are no guarantees that Peterson’s solution will work correctly on such architectures Peterson’s solution is restricted to two processes that alternate execution between their critical sections and remainder sections.)
11 Classic Problems of Synchronization ( a number of synchronization problems as examples of a large class of concurrency-control problems. These problems are used for testing nearly every newly proposed synchronization scheme.
12 Synchronization within the Kernel, POSIX Synchronization (The Windows operating system is a multithreaded kernel that provides support for real-time applications and multiple processors. When the Windows kernel accesses a global resource on a single-processor system, it temporarily masks interrupts for all interrupt handlers that may also access the global resource. On a multiprocessor system, Windows protects access to global resources using spinlocks, although the kernel uses spinlocks only to protect short code segments. Furthermore, for reasons of efficiency, the kernel ensures that a thread will never be preempted while holding a spinlock.For thread synchronization outside the kernel, Windows provides dispatcher objects. Using a dispatcher object, threads synchronize according to several different mechanisms, including mutex locks, semaphores, events, and timers. The system protects shared data by requiring a thread to gain ownership of a mutex to access the data and to release ownership when it is finis
13 Deadlock in Multithreaded Applications, Deadlock Characterization (The implementation of a semaphore with a waiting queue may result in a situation where two or more processes are waiting indefinitely for an event that can be caused only by one of the waiting processes. The event in question is the execution of a signal() operation. When such a state is reached, these processes are said to be deadlocked.We say that a set of processes is in a deadlocked state when every process in the set is waiting for an event that can be caused only by another process in the set. The “events” with which we are mainly concerned here are the acquisition and release of resources such as mutex locks and semaphores. The readers-writers problem Suppose that a database is to be shared among several concurrent processes. Some of these processes may want only to read the database, whereas others may want to update (that is, read and write) the database.The dining-philosophers problem is considered a classic synchronization problem n
14 Deadlock Prevention, Deadlock Avoidance, Deadlock Detection (Several possible remedies to the deadlock problem are the following: Allow at most four philosophers to be sitting simultaneously at the table. Allow a philosopher to pick up her chopsticks only if both chopsticks are available (to do this, she must pick them up in a critical section). Use an asymmetric solution— that is, an odd-numbered philosopher picks up first her left chopstick and then her right chopstick, whereas an even numbered philosopher picks up her right chopstick and then her left chopstick.
Prerequisite(s): Computer Organization knowledge about memory accessibility.
Textbook(s): 1."OPERATING SYSTEM CONCEPTS" ,ABRAHAM SILBERSCHATZ, PETER BAER GALVIN,GREG GAGNE, Copyright © 2018, 2013, 2012, 2008 John Wiley & Sons, Inc, Enhanced ePub ISBN 978-1-119-32091-2. "MODERN OPERATING SYSTEMS", ANDREW S. TANENBAUM, HERBERT BOS, Copyright © 2015, 2008 by Pearson Education, Inc, ISBN-10: 0-13-359162-X, ISBN-13: 978-0-13-359162-0. 3."Operating Systems Internals and Design Principles" , William Stallings, ISBN-10: 0-13-359162-X ISBN-13: 978-0-13-359162-0
Additional Literature:
Laboratory Work: VM Ubuntu for shell commands and shell scripting
Computer Usage: VM with VirtualBox
Others: No
COURSE LEARNING OUTCOMES
1 Operating-System Structures will provide a significant knowledge about the design and implementation of operating systems.
2 Processes generation from the user program running as well from OS running their distinction.
3 Process execution and the different queues and the different states the process undergoes during its execution by the CPU.
4 Process scheduling algorithms.
5 Threads and multicore programming.
6 CPU scheduling
7 Synchronization tools
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
1 Identify activities, tasks, and skills in management, marketing, accounting, finance, and economics. 2
2 Apply key theories to practical problems within the global business context. 3
3 Demonstrate ethical, social, and legal responsibilities in organizations. 2
4 Develop an open minded-attitude through continuous learning and team-work. 5
5 Integrate different skills and approaches to be used in decision making and data management. 3
6 Combine computer skills with managerial skills, in the analysis of large amounts of data. 4
7 Provide solutions to complex information technology problems. 5
8 Recognize, analyze, and suggest various types of information-communication systems/services that are encountered in everyday life and in the business world. 3
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
1
15
Midterm Exam(s)
1
30
Quiz
1
5
Final Exam
1
50
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 3 48
Hours for off-the-classroom study (Pre-study, practice) 14 4.5 63
Mid-terms 1 12 12
Assignments 1 12 12
Final examination 1 15 15
Other 0
Total Work Load:
150
Total Work Load/25(h):
6
ECTS Credit of the Course:
6
CONCLUDING REMARKS BY THE COURSE LECTURER

During the course the students will get to know more in deep the function of the operating system, its importance as resource manager. How are the process run, scheduled to be executing and their passing from one queue to the other in order for the resource allocation like CPU time and RAM.