Operating Systems Principles (Introduction)
The purpose of the operating system is to run the user program on the computer.
Nowadays everywhere are being used different types of computers for different purposes. All they need operating systems to perform their tasks.
Starting from very small computers inside the handheld devices and finishing with huge supercomputers in data centers have their operating systems. But surprisingly all those different operating systems have the same basic principles.
This course describes that basic principles and allows to understand the differences between the operating systems and the reasons why this or that operating system is being used on different computers or computer systems.
Sources:
Yale university
UC Berkeley
JHU
My experience
This course structure
Virtual Machine
Real Workstation
Student’s should complete programming assignments on “Unix and Windows Processes and Threads programming on C, C++”
Required Textbook:
Silberschatz, Galvin, Gagne “Operating System Concepts”, 9th edition. 2012
Kay A. Robbins, Steven Robbins, Unix Systems Programming, 2003
Recommended Reference Books:
Herbert Schildt. Windows 95 Programming in C and C++. 1995
Herbert Schildt. Windows 2000 Programming from the Ground Up. 2000.
Kate Gregory. Using Visual C++ 6.
Goal of this handout: to teach the differences of main types of OS and the evaluation criteria of OS.
Outcome: Students should distinguish the different types of OS/computer systems and be able to apply the evaluation criteria to different types of OS and evaluate different systems’ performance.
Handout Content:
1.1. What is an Operating System
1.2. Computer system types and description
1.2.1. Mainframe Computer Systems
1.2.1.1. Batch Systems
1.2.1.2. Multiprogrammed Systems
1.2.1.3. Time Sharing Systems
1.2.2. Desktop Systems
1.2.3. Multiprocessor Systems
Tandem, Symmetric, Asymmetric multiprocessor systems
1.2.4. Distributed Systems
1.2.4.1. Client Server Systems
1.2.4.2. Peer-to-Peer Systems
1.2.5. Clustered Systems
1.2.6. Real Time Systems
1.2.7. Handheld Systems
Textbook Silberschatz, Chapter 1
1.1. What is an Operating System
The purpose of the operating system is to run the user program(s).
The three main responsibilities of an operating system:
To provide an environment for a computer user to execute programs on computer hardware in a convenient and efficient manner (Shells, Windows, Terminals, Executable files concept).
To allocate the separate resources (memory, processor, disk space, I/O device usage) of the computer as needed to solve the problem given. The allocation process should be as fair and efficient as possible.
As a control program it serves two major functions:
supervision of the execution of user programs to prevent errors and improper use of the computer (protection of OS and programs from user programs).
management of the operation and control of I/O devices (device drivers, file systems)
An operating system is a program that manages the computer hardware and acts as an intermediary between the user applications and the computer hardware.
The operating system must ensure the correct operation of the computer system. To prevent user programs from interfering with the proper operation of the system, the hardware must provide appropriate mechanisms.
The operating system provides certain services to programs and to the users of those programs in order to make their tasks possible and easier.
The services differ from one operating system to another, but we identify and explore some common classes of these services.
An operating system is an important part of almost every computer system. A computer system can be divided roughly into four components: the hardware, the operating system, the application programs, and the users.
User 1
User 2
User 3
User n
Compiler Assembler Text editor Database System
System and application programs
Operating System
Computer Hardware
Abstract view of the components of a computer system.
The hardware - the central processing unit (CPU), the memory, and the input/output (I/O) devices -provides the basic computing resources.
The application programs-such as word processors, spreadsheets, compilers, and web browsers - define the ways in which these resources are used to solve the computing problems of the users.
The operating system controls and coordinates the use of the hardware among the various application programs for the various users.
The operating system provides the means for the proper use of the resources of the computer system.
User Application Programs
Trying to use Computing Resources
API to OS for User Applications
Using ready solutions is possible (is effective)
Operating System
Device drivers
Control API to Hardware
Direct usage is possible (but is not effective)
Computing Resources
are provided by Computer Hardware
(CPU, Memory, I/O devices)
An application programming interface (API) is a set of functions, procedures, methods or classes that an operating system, library or service provides to support requests made by computer programs.
The operating system is similar to a government. Like a government, it performs no useful function by itself. It simply provides an environment within which other programs can do useful work.
1.2. Computer System types and description
The newest computers repeat the history of old computers starting from the very simple software and growing to full multiprocessor OS.
All OS solutions invented tens of years ago are applicable for newest computers.
1.2.1. Mainframe Computer Systems
Mainframe computer systems were the first computers used to tackle many commercial and scientific applications. They grew of from simple batch systems, where the computer runs one - and only one-application, to time-shared systems, which allow for user interaction with the computer system.
Mainframe Computer Systems
Desktop Computer Systems
Operating Systems
Batch Systems
Multiprogrammed Systems
Time Sharing Systems
OS improves
Tasks are collected in similar tasks’ batches
Next task from batch runs when the previous one is finished fully
CPU is dedicated for one task and is often idle
Tasks are collected in queues (pools)
If CPU is idle it takes another (next or previous unfinished) task’s some part to be busy all the time
CPU switches between tasks (programs) when it is idle and usually is busy all the time.
Tasks are collected in queues.
CPU takes and runs the
Share with your friends: |