← Back to Home

CITS2002 - Lecture 2
Operating Systems - Slides

Operating Systems

  • An operating system (OS) is essential software that allows users and applications to interact with hardware

    • Operating system user/computer interface
    • Operating system resource manager
  • The OS sits between the hardware and all other user programs

  • An operating system must be modular/extensible

    • This is so that it can adapt to new hardware, software, patches, etc.

Structure of an OS

User Applications

System Programs (e.g., compilers, shells)

System Calls (interface between apps and OS)

Operating System

Hardware (CPU, Memory, I/O Devices)

Traditional Operating Systems Services

CPU scheduling:

  • Determines which process runs on the CPU and when
  • Ensures fair and efficient CPU use

Memory management (e.g., virtual memory):

  • Controls how RAM is allocated to different programs
  • Enables execution of multiple programs simultaneously

Swapping:

  • When RAM is full, the OS swaps data between RAM and disk
  • Presents the illusion of a larger memory space

Input/output (I/O) device support:

  • Manages communication with external devices (e.g. peripherals)
  • Supports new devices through device drivers
  • Drivers are hardware-specific programs that allow the OS to communicate with devices

File system management:

  • Organizes and stores data on permanent storage

Utility programs (not core OS):

  • Provide supportive functions like editors, compilers, or file browsers

Command interface:

  • A way for users or developers to interact directly with the OS (e.g. Windows Terminal)

System calls:

  • Interface between user programs and the OS
  • Allow programs to request services

Security and protection:

  • Prevents unauthorized access to hardware, memory, and files
  • Protects system integrity against malware or faulty programs

Communication:

  • Manages inter-process communication (IPC) within the system
  • Enables communication between programs or across computers

History of Operating Systems

  1. Early Computers (1940s–1950s):
    • No OS; programs were “wired” into machines or input using punch cards or paper tape
    • Charles Babbage and Ada Lovelace are early visionaries of computing.
    • Alan Turing (code breaking) and John von Neumann (stored-program model) are foundational figures
  2. 1950s–60s:
    • Computers used valves, later replaced by transistors
    • Introduction of higher-level programming languages and compilers
    • Programs submitted in batches (batch systems)
  3. Multiprogramming and Time-Sharing:
    • To reduce idle CPU time during I/O, multiple programs loaded in memory and switched between rapidly
    • This time-sharing is what makes modern systems feel like they’re doing many things at once, even with a single CPU

Source: ChatGPT Summary of slides


CITS2002 - Lecture 4