OS 1

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

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

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 Operating System provides features between systems across network
    • Communication scheme allows systems to exchange messages
    • Illusion of a single system

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

https://www.javatpoint.com/open-source-operating-system

Reference

https://www.andrew.cmu.edu/course/14-712-s20/applications/ln/14712-l2.pdf