
1. File-system manipulation
1.1. Processor able to
1.1.1. Read and Write files and directories
1.1.2. Create and delete them
1.1.3. Search them
1.1.4. List file information
1.1.5. Manage permission
2. Communication
2.1. Processor may exchange information on the same computer or computer in the same network
2.2. Via
2.2.1. Communication models
2.2.1.1. Shared Memory
2.2.1.2. Message Passing
3. Error Detection
3.1. Ensure correct computing by detecting error in
3.1.1. CPU
3.1.2. Memory hardware
3.1.3. I/O devices
3.1.4. User program
4. Additional Function
4.1. Resource allocation
4.1.1. Allocate resources to multiple users or multiple jobs running concurrently
4.2. Accounting
4.2.1. Keep track of and record which used resources
4.2.2. Accumulate usage statistics
4.3. Protection and security
4.3.1. Owner information stored in a multiuser or networked computer system may want to control use of that information
4.3.2. Ensure the concurrent process would not interfere with each other
5. System call
5.1. Provide the interface between running program and operating system
5.2. by
5.2.1. Pass parameters in registers
5.2.2. Parameter stored in a block, or table, or memory and address of block passed as a parameter in register
5.2.3. Parameters placed, or pushed, onto stack by the program and popped off the stack by the operating system
5.3. Type
5.3.1. - Process control - File management - Device management - Information Maintenance - Communication - Protection
6. Operating System Design
6.1. Start by defining goals and specifications
6.2. Affected by
6.2.1. - Batch - Time shared - Single user - Multiuser - Distributed - Real time - General purpose
6.3. User goals
6.3.1. Operating system should be convenient to use, easy to learn, reliable, safe, and fast
6.4. System goals
6.4.1. Operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient
7. User Interface
7.1. Graphical User Interface
7.2. Menu Driven Interface
7.3. Command Line Interface
8. Program Execution
8.1. System must be able to
8.1.1. Load a program into memory
8.1.2. Run a program
8.1.3. End execution either normally or abnormally
9. I/O Operation
9.1. Operating system provide some means to perform I/O
10. Approach
10.1. Layered Approach
10.1.1. Operating system dvided intoa number of layer
10.1.1.1. Layer 0 : Hardware
10.1.1.2. Layer N : User Interface
10.1.2. Layers are selected such that each uses function and services of only lower-level layer
10.1.3. Advantage
10.1.3.1. Simplicity of construction and debugging
10.1.4. Disadvantage
10.1.4.1. Careful definition and interaction of the layers
10.1.4.2. Less efficient
10.2. Microkernel
10.2.1. Small operating system core
10.2.1.1. Contain only essential core oeprating system functions
10.2.1.2. Services
10.2.1.2.1. Device drivers
10.2.1.2.2. File systems
10.2.1.2.3. Virtual memory manager
10.2.1.2.4. Windowing system
10.2.1.2.5. Security services
10.2.2. Advantage
10.2.2.1. Extensibility
10.2.2.1.1. Allow the addition of new services
10.2.2.2. Flexibility
10.2.2.2.1. New feature replace existing feature
10.2.2.3. Reliability
10.2.2.3.1. Modular design
10.2.2.3.2. Small microkernel can be rigorously tested
10.2.2.4. Portability
10.2.2.4.1. Changes needed to port the system to a new processor is changed in the microkernel only