Get Started. It's Free
or sign up with your email address
Operating Systems by Mind Map: Operating Systems

1. Computer-System Architecture

1.1. single general-purpose processor

1.2. special-purpose processors

1.3. Multiprocessors

1.3.1. Asymmetric Multiprocessing

1.3.2. Symmetric Multiprocessing

1.4. How a Modern Computer Works

1.5. Symmetric Multiprocessing Architecture

1.6. A Dual-Core Design

1.7. Clustered Systems

1.7.1. Asymmetric clustering

1.7.1.1. one machine in hot-standby mode

1.7.2. Symmetric clustering

1.7.2.1. multiple nodes running applications, monitoring each other

2. Operating-System Operations

2.1. User mode

2.2. kernel mode

3. Process Management

3.1. Single-threaded process

3.1.1. Process executes instructions sequentially, one at a time, until completion

3.2. Multi-threaded process

3.2.1. s has one program counter per thread

4. Memory Management

5. Storage Management

5.1. Mass-Storage Management

6. Protection and Security

6.1. Protection

6.2. Security

6.2.1. Huge range, including denial-of-service, worms, viruses, identity

7. Computing Environments

7.1. Client-Server Computing

7.1.1. Compute-server

7.1.2. File-server

8. Web-Based Computing

9. Processes

9.1. Process Concept

9.1.1. Batch system

9.1.2. Time-shared systems

9.2. part of processer

9.2.1. program counter

9.2.2. stack

9.2.3. data section

9.2.4. text section

9.2.5. Stack

9.2.6. Heap

9.3. Process in Memory

9.4. Process State

9.4.1. new

9.4.2. running

9.4.3. waiting

9.4.4. ready

9.4.5. terminated

9.5. Diagram of Process State

9.6. PCB

9.6.1. Process state

9.6.2. Program counter

9.6.3. CPU registers

9.6.4. CPU scheduling information

9.6.5. Memory-management information

9.6.6. Accounting information

9.6.7. I/O status information

9.7. Process Scheduling

9.7.1. queues

9.7.1.1. Job queue

9.7.1.2. Ready queue

9.7.1.3. Device queues

9.7.2. Schedulers

9.7.2.1. Long-term scheduler

9.7.2.2. Short-term scheduler

9.8. Context Switch

9.9. Process Creation

9.9.1. Parent process

9.9.2. children processes

9.10. Process Termination

9.11. Interprocess Communication

9.11.1. interprocess communication

9.11.1.1. Shared memory

9.11.1.2. Message passing

9.11.1.2.1. Synchronization

9.11.1.2.2. asynchronous

9.11.1.3. Examples of IPC Systems

9.11.1.3.1. Windows XP

9.11.1.3.2. Mach

9.11.1.3.3. POSIX

9.12. Communications in Client-Server Systems

9.12.1. Sockets

9.12.2. Remote Procedure Calls

9.12.2.1. Stubs

9.12.3. Pipes

9.12.3.1. conduit allowing two processes to communicate

9.12.3.2. types

9.12.3.2.1. Ordinary Pipes

9.12.3.2.2. Named Pipes

9.12.4. Java

10. Computer System Structure

10.1. Operating System Services

10.1.1. User interface

10.1.2. Program execution

10.1.3. I/O operations

10.1.4. File-system manipulation

10.1.5. Communications

10.1.6. Error detection

10.1.7. Resource allocation

10.1.8. Accounting

10.1.9. Protection and security

10.2. User Operating System Interface

10.2.1. Command Line Interface

10.2.2. GUI

10.2.2.1. eg:Solaris is CLI with optional GUI interfaces (Java Desktop, KDE),Microsoft Windows is GUI with CLI “command” shell

10.3. System Calls

10.3.1. Application Program Interface (API)

10.3.1.1. APIs are Win32 API for Windows, POSIX API for POSIX-based systems (including virtually all versions of UNIX, Linux, and Mac OS X), and Java API for the Java virtual machine

10.3.2. System Call Implementation

10.3.3. API – System Call – OS Relationship

10.3.4. System Call Parameter Passing

10.3.5. Types of System Calls

10.3.5.1. Process control

10.3.5.2. File management

10.3.6. Types of System Calls (Cont.)

10.3.6.1. Device management

10.3.6.2. Information maintenance

10.3.6.3. Communications

10.4. Simple Structure

10.4.1. MS-DOS

10.4.2. MS-DOS Layer Structure

10.4.3. Layered Approach

10.4.4. UNIX

10.4.4.1. Systems programs

10.4.4.2. The kernel

10.4.5. Microkernel System Structure

10.4.6. Mac OS X Structure

10.5. Virtual Machines

10.5.1. Para-virtualization

10.5.2. Virtualization Implementation

10.5.3. Solaris 10 with Two Containers

10.5.4. VMware Architecture

10.5.5. The Java Virtual Machine

10.6. Operating-System Debugging

10.6.1. dump

10.6.1.1. core

10.6.1.2. crash

10.6.2. Kernighan’s Law

10.6.3. Probes

10.7. Operating System Generation

10.7.1. Booting

10.7.2. Bootstrap program

10.7.2.1. code stored in ROM that is able to locate the kernel, load it into memory, and start its execution

10.8. System Boot

10.8.1. bootstrap loader

10.8.2. boot block

10.9. Multiprogramming

10.9.1. job scheduling

10.10. Timesharing (multitasking)

11. What Operating Systems Do

11.1. resource allocator

11.2. control program

12. Computer Startup

12.1. bootstrap program

13. Computer System Organization

13.1. Computer-System Operation

13.1.1. interrupt

13.1.1.1. Common Functions of Interrupts

13.1.1.1.1. interrupt vector

13.1.1.1.2. interrupt driven

13.1.1.2. Interrupt Handling

13.1.1.2.1. polling

13.1.1.2.2. vectored

13.1.1.3. Interrupt Timeline

13.1.1.4. I/O Structure

13.1.1.4.1. System call

13.1.1.4.2. Device-status table

13.1.1.5. Direct Memory Access Structure

14. Storage Structure

14.1. Random access

14.2. Typically volatile

14.3. nonvolatile

14.4. Storage Hierarchy

14.4.1. Caching

14.4.1.1. L1 chache

14.4.1.2. L2 chache

14.4.1.3. L3 chache

15. I/O Subsystem

16. Distributed Computing

16.1. Local Area Network (LAN)

16.2. Wide Area Network (WAN)

16.3. Metropolitan Area Network (MAN)

17. Peer-to-Peer Computing

18. Open-Source Operating Systems

18.1. GNU/Linux and BSD UNIX

19. Threads

19.1. Motivation

19.2. Multicore Programming

19.3. Multithreaded Server Architecture

19.4. User Threads

19.4.1. POSIX Pthreads

19.4.2. Win32 threads

19.4.3. Java threads

19.5. Kernel Threads

19.5.1. Windows XP/2000 Solaris Linux Tru64 UNIX Mac OS X

19.6. Multithreading Models

19.6.1. Many-to-One

19.6.2. One-to-One

19.6.3. Many-to-Many

19.7. Thread Libraries

19.8. Pthreads

19.9. Java Threads

19.10. Threading Issues

19.11. Thread Cancellation

19.11.1. Asynchronous cancellation

19.11.2. Deferred cancellation

19.12. Signal Handling

19.13. Thread Pools