Chapter 1: Introduction
- What Operating Systems Do
- Computer-System Organization
- Computer-System Architecture
- Operating-System Structure
- Operating-System Operations
- Process Management
- Memory Management
- Storage Management
- Protection and Security
- Kernel Data Structures
- Computing Environments
- Open-Source Operating Systems
Objectives
- To describe the basic organization of computer systems
- To provide a grand tour of the major components of operating systems
- To give an overview of the many types of computing environments
- To explore several open-source operating systems
What is an Operating System?
- A program that acts as an intermediary between a user of a computer and the computer hardware
- Operating system goals:
- Execute user programs and make solving user problems easier
- Make the computer system convenient to use
- Use the computer hardware in an efficient manner
Computer System Structure
- Computer system can be divided into four components:
- Hardware - provides basic computing resources
- CPU, memory, I/O devices
- Operating system
- Controls and coordinates use of hardware among various applications and users
- Application programs - define the ways in which the system resources are used to solve the computing problems of the users
- Word processors, compilers, web browsers, database systems, video games
- Users
- People, machines, other computers

- People, machines, other computers
- Hardware - provides basic computing resources
What Operating Systems Do
- Depends on the point of view
- Users want convenience, ease of use
- Don’t care about resource utilization
- But shared computer such as mainframe or minicomputer must keep all users happy
- Users of dedicate systems such as workstations have dedicated resources but frequently use shared resources from servers
- Handheld computers are resource poor, optimized for usability and battery life
- Some computers have little or no user interface, such as embedded computers in devices and automobiles
Operating System Definition
- OS is a resource allocator
- Manages all resources
- Decides between conflicting requests for efficient and fair resource use
- OS is a control program
- Controls execution of programs to prevent errors and improper use of the computer
- No universally accepted definition
- “Everything a vendor ships when you order an operating system” is good approximation
- But varies wildly
- “The one program running at all times on the computer” is the kernel. Everything else is either a system program (ships with the operating system) - or an application program.
Computer Startup
- bootstrap program is loaded at power-up or reboot
- Typically stored in ROM or EPROM, generally known as firmware
- Initializes all aspects of system
- Loads operating system kernel and starts execution
Computer System Organization
- Computer-system operation
- One or more CPUs, device controllers connect through common bus providing access to shared memory
- Concurrent execution of CPUs and devices competing for memory cycles
Computer-System Operation
- I/O devices and the CPU can execute concurrently
- Each device controller is in charge of a particular device type
- Each device controller has a local buffer
- CPU moves data from/to main memory to/from local buffers
- I/O is from the device to local buffer of controller
- Device controller informs CPU that it has finished its operation by causing an interrupt
https://www.javatpoint.com/device-driver-vs-device-controller-in-operating-system
Common Functions of Interrupts
- Interrupt transfers control to the interrupt service routine generally, through the interrupt vector, which contains the addresses of all the service routines
- Interrupt architecture must save the address of the interrupted instruction
- A trap or exception is a software-generated interrupt caused either by an error or a user request
- An operating system is interrupt driven
https://www.javatpoint.com/what-is-interrupt-in-os
https://www.geeksforgeeks.org/interrupts/
Interrupt Handling
- The operating system preserves the state of the CPU by storing registers and the program counter
- Determines which type of interrupt has occurred:
- polling
- vectored interrupt system
- Separate segments of code determine what action should be taken for each type of interrupt

I/O Structure
- After I/O starts, control returns to user program only upon I/O completion
- Wait instruction idles the CPU until the next interrupt
- Wait loop (contention for memory access)
- At most one I/O request is outstanding at a time, no simultaneous I/O processing
- After I/O starts, control returns to user program without waiting for I/O completion
- System call - request to the OS to allow user to wait for I/O completion
- Device-status table contains entry for each I/O device indicating its type, address, and state
- OS indexes into I/O device table to determine device status and to modify table entry to include interrupt
Storage Definitions and Notation Review
The basic unit of computer storage is the bit. A bit can contain one of two values, 0 and 1. All other storage in a computer is based on collections of bits. Given enough bits, it is amazing how many things a computer can represent: numbers, letters, images, movies, sounds, documents, and programs, to name a few. A byte is 8 bits, and on most computers it is the smallest convenient chunk of storage. For example, most computers don’t have an instruction to move a bit but do have one to move a byte. A less common term is word, which is a given computer architecture’s native unit of data. A word is made up of one or more bytes. For example, a computer that has 64-bit registers and 64-bit memory addressing typically has 64-bit (8-byte) words. A computer executes many operations in its native word size rather than a byte at a time.
Computer storage, along with most computer throughput, is generally measured and manipulated in bytes and collections of bytes.
A kilobyte, or KB, is 1,024 bytes
a megabyte, or MB, is 1,0242 bytes
a gigabyte, or GB, is 1,0243 bytes
a terabyte, or TB, is 1,0244 bytes
a petabyte, or PB, is 1,0245 bytes
Computer manufacturers often round off these numbers and say that a megabyte is 1 million bytes and a gigabyte is 1 billion bytes. Networking measurements are an exception to this general rule; they are given in bits (because networks move data a bit at a time).
Direct Memory Access Structure
- Used for high-speed I/O devices able to transmit information at close to memory speeds
- Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention
- Only one interrupt is generated per block, rather than the one interrupt per byte
Storage Structure
- Main memory - only large storage media that the CPU can access directly
- Random access
- Typically volatile
- Secondary storage - extension of main memory that provides large nonvolatile storage capacity
- Magnetic disks - rigid metal or glass platters covered with magnetic recording material
- Disk surface is logically divided into tracks, which are subdivided into sectors
- The disk controller determines the logical interaction between the device and the computer
- Solid-state disks - faster than magnetic disks, nonvolatile
- Various technologies
- Becoming more popular
https://www.javatpoint.com/mass-storage-structure-in-operating-systems
Storage Hierarchy
- Storage systems organized in hierarchy
- Speed
- Cost
- Volatility
- Caching - copying information into faster storage system; main memory can be viewed as a cache for secondary storage
- Device Driver for each device controller to manage I/O
- Provides uniform interface between controller and kernel

- Provides uniform interface between controller and kernel
https://www.geeksforgeeks.org/storage-structure-in-operating-systems/
Caching
- Important principle, performed at many levels in a computer (in hardware, operating system, software)
- Information in use copied from slower to faster storage temporarily
- Faster storage (cache) checked first to determine if information is there
- If it is, information used directly from the cache (fast)
- If not, data copied to cache and used there
- Cache smaller than storage being cached
- Cache management important design problem
- Cache size and replacement policy
https://www.techtarget.com/whatis/definition/caching
https://www.tutorialspoint.com/What-is-caching
https://www.geeksforgeeks.org/difference-between-buffering-and-caching-in-os/
Process Management
- A process is a program in execution. It is a unit of work within the system. Program is a passive entity, process is an active entity.
- Process needs resources to accomplish its task
- CPU, memory, I/O, files
- Initialization data
- Process termination requires reclaim of any reusable resources
- Single-threaded process has one program counter specifying location of next instruction to execute
- Process executes instructions sequentially, one at a time, until completion
- Multi-threaded process has one program counter per thread
- Typically system has many processes, some user, some operating system running concurrently on one or more CPUs
- Concurrency by multiplexing the CPUs among the processes / threads
https://byjus.com/gate/process-in-operating-system-notes/ (chap2)
Protection and Security
- Protection - any mechanism for controlling access of processes or users to resources defined by the OS
- Security - defense of the system against internal and external attacks
- Huge range, including denial-of-service, worms, viruses, identity theft, theft of service
- Systems generally first distinguish among users, to determine who can do what
- User identities (user IDs, security IDs) include name and associated number, one per user
- User ID then associated with all files, processes of that user to determine access control
- Group identifier (group ID) allows set of users to be defined and controls managed, then also associated with each process, file
- Privilege escalation allows user to change to effective ID with more rights
https://www.javatpoint.com/security-vs-protection-in-operating-system
Computing Environments - Distributed
- Distributed
- Collection of separate, possibly heterogeneous, systems networked together
- Network is a communications path, TCP/IP most common
- Local Area Network (LAN)
- Wide Area Network (WAN)
- Metropolitan Area Network (MAN)
- Personal Area Network (PAN)
- Network is a communications path, TCP/IP most common
- Network Operating System provides features between systems across network
- Communication scheme allows systems to exchange messages
- Illusion of a single system
- Collection of separate, possibly heterogeneous, systems networked together
Computing Environments - Client-Server
- Client-Server Computing
- Dumb terminals supplanted by smart PCs
- Many systems now servers, responding to requests generated by clients
- Compute-server system provides an interface to client to request services (i.e., database)
- File-server system provides interface for clients to store and retrieve files

Computing Environments - Virtualization
- Allows operating systems to run applications within other OSes
- Vast and growing industry
- Emulation used when source CPU type different from target type (i.e. PowerPC to Intel x86)
- Generally slowest method
- When computer language not compiled to native code - Interpretation
- Virtualization - OS natively compiled for CPU, running guest OSes also natively compiled
- Consider VMware running WinXP guests, each running applications, all on native WinXP host OS
- VMM provides virtualization services

Computing Environments - Cloud Computing
- Delivers computing, storage, even apps as a service across a network
- Logical extension of virtualization as based on virtualization
- Amazon EC2 has thousands of servers, millions of VMs, PBs of storage available across the Internet, pay based on usage
- Many types
- Public cloud - available via Internet to anyone willing to pay
- Private cloud - run by a company for the company’s own use
- Hybrid cloud - includes both public and private cloud components
- Software as a Service (SaaS) - one or more applications available via the Internet (i.e. word processor)
- Platform as a Service (PaaS) - software stack ready for application use via the Internet (i.e a database server)
- Infrastructure as a Service (IaaS) - servers or storage available over Internet (i.e. storage available for backup use)
- Cloud compute environments composed of traditional OSes, plus VMMs, plus cloud management tools
- Internet connectivity requires security like firewalls
- Load balancers spread traffic across multiple applications

Computing Environments - Real-Time Embedded Systems
- Real-time embedded systems most prevalent form of computers
- Vary considerable, special purpose, limited purpose OS, real-time OS
- Use expanding
- Many other special computing environments as well
- Some have OSes, some perform tasks without an OS
- Real-time OS has well-defined fixed time constraints
- Processing must be done within constraint
- Correct operation only if constraints met
Open-Source Operating Systems
- Operating systems made available in source-code format rather than just binary closed-source
- Counter to the copy protection and Digital Rights Management (DRM) movement
- Started by Free Software Foundation (FSF), which has “copyleft” GNU Public License (GPL)
- Examples include GNU/Linux and BSD UNIX (including core of Mac OS X), and many more
- Can use VMM like VMware Player (Free on Windows), Virtualbox (open source and free on many platforms - http://www.virtualbox.com)
- Use to run guest operating systems for exploration
Reference
https://www.andrew.cmu.edu/course/14-712-s20/applications/ln/14712-l2.pdf