•   +1-617-874-1011 (US)
  •   +44-117-230-1145 (UK)
  • Introduction to operating system structure and computer systems

    What is an Operating System?

    operating system (OS) is the software that acts as an intermediary between user applications and computer hardware

    computer system components

    hardware: provides basic computing resources (CPU, memory, I/O devices)

    operatingsystem: controls and coordinates use of hardware among application programs and I/O for devices

    applicationprograms: solve computing problems of users

    “ABSTRACT VIEW OF SYSTEM”

    Introduction to operating system structure and computer systems image 1

    users: people, machines and other computers

    operating system roles

    referee: resource allocation, isolation of different users and applications, communication between users and applications

    illusionist: each application appears to have entire machine to itself

    glue: reduces cost of developing software with libraries and user interface widgets

    example: file systems

    referee: prevent users from accessing each other’s files without permission

    illusionist: files can grow arbitrarily large

    glue: named directories

    operating system challenges: reliability, availability, security, privacy, performance, portability

    key idea: device files as the boundary

    Introduction to operating system structure and computer systems image 2

    I/O sharing implemented in operating system kernel

    Operating Systems History

    early operating systems: bare machine (1950s), expensive hardware and cheap human

    structure: large machines run from console, single user system with programmer/user as operator and punched cards

    secure execution and inefficient use of expensive resources (low CPU utilization and high setup time)

    simple batch systems (1960s)

    reduce setup time by batching jobs with similar requirements and hire an operator (user is NOT the operator)

    automatic job sequencing with rudimentary OS

    solutions to speed up I/O: offline processing

    spooling (simultaneous peripheral operation on-line)

    introduces job pool allowing OS to choose next job to run as to increase CPU utilization

    direct memory access (DMA)

    data moved directly between I/O devices and memory thus CPU can work on other tasks

    used for high speed I/O devices to transmit information at close to memory speeds

    Introduction to operating system structure and computer systems image 3

    I/O completion by polling: device sets a flag when it is busy and program tests the flag in a loop waiting for completion of I/O

    interrupts: on completion of I/O, device forces CPU to jump to specific instruction address with ISR

    after interrupt processed, CPU returns to code it was executing prior to servicing interrupt

    multi-programmed batch systems

    use interrupt to run multiple programs simultaneously

    when program performs I/O, instead of polling, execute another program till interrupt is received

    requires secure memory and I/O for each program, intervention if program indefinite loops and CPU scheduling to choose

    next job to run

    time-sharing systems ( cheaper hardware and more expensive human )

    programs queued for execution in FIFO order and timer device interrupts after quantum (timeslice)

    interrupted program returned to end of FIFO and next program taken from head of FIFO

    control card interpreter replaced by command language interpreter

    interactive (action/response), file systems required for users to access data and code, and virtual memory

    personal and mobile computer systems ( cheap hardware and expensive human )

    portable, single user systems with I/O devices and NO need for advanced CPU utilization or protection features

    advantages of user convenience, responsiveness and ubiquitous

    Computer System and Operating System Structure

    computer system organization

    execution sequence: fetch instruction at PC, decode, execute, write results to registers/memory, increase PC and repeat

    I/O devices and CPU execute concurrently

    each device controller is in charge of a particular device type with local buffer

    CPU moves data from/to main memory to/from local buffers and device controller interrupts CPU on completion of I/O

    interrupt: transfers control to interrupt service routine (segments of code that determine action to be taken for interrupt)

    polling: same interrupt handler called for all interrupts thus polls all devices to figure out reason for interrupt

    interrupt vector table: different interrupt handlers will be executed for different interrupts

    OS preserves state of CPU by storing registers and program counter

    incoming interrupts disabled while another interrupt being processed to prevent a lost interrupt

    types of I/O processing

    synchronous I/O: after I/O requested, wait until I/O is done thus program will be idle

    asynchronous I/O: after I/O requested, control returns to user program without waiting for I/O completion

    Introduction to operating system structure and computer systems image 4

    limit process rights by hardware protection

    dual mode operation: provide hardware support to differentiate between at least two modes of operation

    user mode (execution done on behalf of user) and kernel mode (execution done on behalf of OS)

    “privileged” instructions only executable in kernel mode, otherwise in user mode would trap into kernel mode (interrupt)

    trap (exception): software generated interrupt caused by error or user request (system call)

    mode bit added to hardware to indicate current mode, kernel = 0 and user = 1

    (when interrupt OR trap occurs, switch to kernel mode)

    Introduction to operating system structure and computer systems image 5

    memory protection: provided for interrupt vector and interrupt service routines

    when process is running, only memory in that process address space must be accessible BUT kernel has unrestricted access

    to ALL memory when executing in kernel mode

    to provide memory protection, add two registers that determine range of legal addresses a program may address

    base register holds smallest legal physical memory address and limit register contains size of the range

    virtually addressed base and bounds

    (memory outside defined range is protected)

    Introduction to operating system structure and computer systems image 6

    CPU protection: prevent a process from executing indefinitely

    timer: interrupts computer after specified period to ensure that OS maintains control, decremented every clock tick

    when timer reaches value of 0, an interrupt occurs

    commonly used to implement time sharing and to compute current time (load timer is privileged instruction)

    I/O protection (ALL I/O instructions are privileged instructions)

    must ensure that user program could never gain control of computer in kernel mode

    user perform I/O via system calls, method used by process to request action by OS

    process: an instance of a program, running with limited rights

    thread: a sequence of instructions within a process, potentially many threads per process

    address space: set of rights of a process and memory that the process can access with permissions process has

    kernel: computer program that is core of computer’s OS, with complete control over everything in the system

    handles I/O requests from software and translate them into data-processing instructions for central-processing unit (CPU)

    connects application software to hardware of computer and performs tasks in protected memory

    isolation of memory access

    address space = set of accessible addresses + state associated with them (for 32-bit processor, 232 = 4 billion addresses )

    Introduction to operating system structure and computer systems image 7

    system call

    user code can issue a system call which causes a trap to be handled by kernel (ex: read(), write(), open() …)

    Introduction to operating system structure and computer systems image 8

    interface between running program and OS: assembly language instruction and direct system calls by high level language

    passing parameters between running program and OS via register, memory tables or stack

    system services/programs: convenient environment for program development and execution and defines user view of OS

    ex: command interpreter (parses/execute other system programs), file manipulation (copy/print), file modification (edit) …

    command interpreter system: commands that are given to OS via executable command statements

    ex: process creation and deletion, I/O handling, file system access …

    programs that read and interpret control statements and obtains next command and executes it

    ex: control card interpreter, command-line interpreter and shell

    system design and implementation

    establish design goals (user/system) and software engineering (separate mechanism from policy, what vs. how)

    choose high-level implementation language (faster implementation, compact and easier to debug)

    system generation

    OS written for class of machines thus must be configured for each specific site

    process to customize OS for exact hardware: customizable source code, pre-compiled modules and table to choose execution

    system boot

    bootstrap program: stored in ROM, loader program loads kernel which loads rest of OS

    storage architecture

    main memory: only large storage media that the CPU can access directly

    secondary storage: extension of main memory that has large nonvolatile storage capacity

    magnetic disk: rigid metal-glass platters covered with magnetic recording material

    disk surface logically divided into tracks/sectors & disk controller determines logical interaction betw. device & computer

    storage systems organized in hierarchy based on speed, cost and volatility

    caching: process of copying information into faster storage system (main memory = fast cache for secondary storage)

    Introduction to operating system structure and computer systems image 9

    operating systems organization

    simple (1-2 levels of code) and layered (lower levels independent of upper levels)

    modular (core kernel with dynamically loadable modules) and microkernel (OS built from many user-level processes)

    MS-DOS: provides a lot of functionality in little space, NOT divided into modules,

    interfaces and levels of functionality NOT well separated

    Introduction to operating system structure and computer systems image 10

    original unix system structure: limited structuring with two separable parts

    systems programs and kernel (below system call interface and above physical hardware)

    Introduction to operating system structure and computer systems image 11

    layered os structure: OS divided into number of layers (bottom is hardware and highest is user interface)

    each layer uses functions and services of only lower-level layers

    Introduction to operating system structure and computer systems image 12

    modules-based structure: most modern os implement modules where each core component is separte, each talks to other over known interfaces and each is loadable as needed within the kernel

    similar to layers BUT more flexibility

    Introduction to operating system structure and computer systems image 13

    monolithic vs. microkernel os

    mono have large kernels with lots of components (Linux, Windows, Mac)

    whereas micro moves as much from kernel into “user” space with small core OS running at kernel level

    communication between modules with message passing

    benefits: easier to extend a microkernel and to port OS to new architecture, more reliable (less code running in kernel mode)

    fault isolation (parts of kernel protected from other parts) and more secure

    detriments: performance overhead severe from naïve implementation

    Introduction to operating system structure and computer systems image 14

    OS tasks managements

    process: fundamental concept in OS as instance of a program in execution and needs resources (CPU time, memory, files…)

    OS responsible for following process management activities

    process creation and deletion, suspension and resumption, synchronization and interprocess communication & interaction

    main memory: volatile array of addressable words OR bytes that is quickly accessible

    OS responsible for following memory management activities

    allocation/deallocation, managing multiple processes within memory and determineing which processes to load when memory becomes available

    secondary storage: required for backup as primary form of disk

    OS responsible for storage allocation, free-space management and disk scheduling

    I/O system consists of buffer caching and management, device driver interface that abstracts device details and drivers for

    specific hardware devices

    file system management: file = collection of related information defined by creator, represents programs and data

    OS responsible for file creation and deletion, directory creation and deleted, mapping files to disks and …

    protection and security: protection mechanisms control access of programs and processes to user and system resources

    THUS protects user from himself, user from other users and system from users

    protection mechanism: distinguish between authorized and unauthorized use

    specify access control to be imposed on use

    provide mechanism for enforcement of access control

    security mechanisms provide trust in system and privacy (authentication, certification…)

    networking: connecting processor in distributed system which is collection of processors that do NOT share memory or clock

    processor connected via communication network

    advantages: allows use and system to exchange information

    provide computational speedup

    increase reliability and availability of information

    virtual machines

    Introduction to operating system structure and computer systems image 15

    use cases: resource configuration, running multiple OS (either same or different OS) and run existing OS binaries

    I/O devices

    port: connection point with a device bus: set of wires and common protocol for communication with devices

    controller: digital interface to physical device

    Introduction to operating system structure and computer systems image 16

    system communications

    I/O devices and CPU can execute concurrently BUT CPU must be aware of when devices should be interacted with

    CPU queries device using polling OR device controller informs CPU that it is ready by causing an interrupt

    polling: CPU is used by device drive to continually check device (registers) to see whether device is ready for input or output

    ( frequent polling = wasted CPU cycles, whereas infrequent polling = buffer overrun and data loss )

    interrupts: device controller sets interrupt request line (different lines for different device types)

    Introduction to operating system structure and computer systems image 17

    interrupt handling: when interrupt triggered, control is transferred to interrupt service routine (ISR) through

    interrupt vector which contains address of all service routines

    ( ISR must save address of interrupt instruction and program state )

    for fast synchronous devices (display driver) use polling and for slow asynchronous devices (network driver) use interrupts

    Introduction to operating system structure and computer systems image 18

    direct memory access (DMA)

    devices requiring big amounts of data to be copied from/to device memory to/from main memory

    if CPU handles copy, slow and waste cycles

    Introduction to operating system structure and computer systems image 19

    device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention

    ( interrupt is generated when transfer is done )

    Resources

    • 24 x 7 Availability.
    • Trained and Certified Experts.
    • Deadline Guaranteed.
    • Plagiarism Free.
    • Privacy Guaranteed.
    • Free download.
    • Online help for all project.
    • Homework Help Services

    Testimonials

    Urgenthomework helped me with finance homework problems and taught math portion of my course as well. Initially, I used a tutor that taught me math course I felt that as if I was not getting the help I needed. With the help of Urgenthomework, I got precisely where I was weak: Sheryl. Read More