← 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