
1. Operating System Services : 1. User interface - Almost all operating systems have a user interface. 2. Program execution – The system must be able to load a program into memory and to run that program, end execution, either normally or abnormally. 3. I/O operations – Since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O. 4. File-system manipulation – Program capabilities to read and write files and directories, create and delete them, search them, list file Information, permission management. 5. Communications – Processes may exchange information, on the same computer or between computers over a network 6. Error detection – Ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs.
2. Additional Operating System Functions : Protection and security - The owners of information stored in a multiuser or networked computer system may want to control use of that information, concurrent processes should not interfere with each other.
3. Operating System Design : -Design and Implementation of OS not “solvable”, but some approaches have proven successful. -Start by defining goals and specifications . -The design of the system will be affected by the choice of hardware and the type of system: batch, time shared, single user, multiuser, distributed, real time or general purpose.
3.1. Goal :
3.1.1. 1. User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast.
3.1.2. 2. System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient.
4. Microkernel :
4.1. - Contains only essential core operating systems functions
4.2. -Many services traditionally included in the operating system are now external subsystems
4.2.1. - Device drivers - File systems - Virtual memory manager - Windowing system - Security services
4.3. -Small operating system core
4.4. -Benefit :
4.4.1. -Extensibility -Flexibility -Reliability -Portability
5. System Calls
5.1. 1. System calls provide the interface between a running program and the operating system.
5.1.1. 1.1 Generally available as assembly-language instructions. 1.2 Languages defined to replace assembly language for systems programming allow system calls to be made directly
5.2. 2. Three general methods are used to pass parameters between a running program and the operating system.
5.2.1. 2.1 Pass the parameters in registers. 2.2 Parameters stored in a block, or table, in memory, and address of block passed as a parameter in a register. 2.3 Parameters placed, or pushed, onto the stack by the program and popped off the stack by the operating system.
5.3. 3. Types of System Calls
5.3.1. - Process control - File management - Device management - Information maintenance - Communications - Protection