Skip to content

Instantly share code, notes, and snippets.

@onyb
Last active September 12, 2015 01:39
Show Gist options
  • Save onyb/709755e55b9a95005285 to your computer and use it in GitHub Desktop.
Save onyb/709755e55b9a95005285 to your computer and use it in GitHub Desktop.
Operating Systems (Third Edition): Chapter 1
Operating Systems (Third Edition)
Harvey M. Deitel, Paul J. Deitel, David R. Choffnes
-------------------------------------------------------------------------------
CHAPTER 1: Introduction to Operating Systems
-------------------------------------------------------------------------------
# Core Operating System Components
* User interacts with the Operating System through
- special application called shell
- kernel: software that contains core components of OS
* Components of a typical Operating System
- process scheduler
- memory manager
- I/O manager
- Interprocess Communication (IPC) manager
- File System manager
# Operating System goals
- Efficiency
- Robustness
- Scalability
- Extensibility
- Portability
- Security
- Protection
- Interactivity
- Usability
# Operating System Architectures
* Monolithic Architecture
- Every component contained in kernel
- Every component can directly communicate with any other
- Highly efficient because few calls cross from user space to kernel
space.
- Linux is broadly categorized as a monolithic OS
- Difficult to trace bugs in the source
- All codes execute with unrestricted access to the system, hence
kernel is susceptible to damage from errant or malicious code.
* Layered Architecture
- Improves monolithic kernel design by grouping components
- Components are grouped into layers on the basis of functions
performed by them
- Each layer communicates only with layers immediately above and below
it.
- Implementation of each layer can be modified without requiring any
modification to other layers.
- Requests by processes might have to pass through many layers before
completion. Several calls may be required to communicate between
layers.
- System throughput is less than monolithic kernels.
* Microkernel Architecture
- Attempt to keep kernel small and scalable
- High degree of modularity
- Extensible, portable, and scalable
- Increased level of inter-module communication
- Microkernel does not rely on each component to execute. One or more
components can fail without causing the OS to fail.
- OS components like process management, networking, file system
interaction, and device management execute outside the kernel with
lower privilege level.
# Network and Distributed Operating Systems
* Network Operating System
- Client server network model.
- Client computers request files, or processing time via appropriate
networking protocol.
- Allows processes to access resources on remote machines.
* Distributed Operating Systems
- Single operating system, but manages resources on more than one
computer system.
- Processes do not need to know the location of resources they use.
- Need for complex algorithms to enable processes to communicate and
share data among many computers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment