Operating system

From Computer Science Wiki
Operating system placement.svg.png

An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require an operating system to function.[1]


Explain the role of an operating system[edit]

Task What is the role of the OS?
Managing memory The memory management function keeps track of the status of each memory location, either allocated or free. It determines how memory is allocated among competing processes, deciding which gets memory, when they receive it, and how much they are allowed[2]. An operating system must also keep track of programs in memory.
Manage peripherals Usually OS manages peripherals via a device driver:
  • handles the translation of requests between a device and the computer
  • defines where a process must put outgoing data before it can be sent, and where incoming messages will be stored when they are received
  • wakes up the device when it is needed and put it back to sleep when it is not
Manage hardware interfaces This is related to peripherals, above. A hardware interface is the wires, plugs and sockets that hardware devices use to communicate with each other.[3]
Allocating storage This is not only reading, storing and writing data to a disk, but also attaching ownership and permissions to storage AND how and where on the disk the data is stored.
Swapping between programs on time-slicing With a multi-user system, a time-slice is the set amount of processing time each user gets. With a single-user system, a time-slice is the set amount of processing time each program gets. Slices (also called threads) are alternately processed to give the illusion of many tasks happening at once[4]

Different operating systems[edit]

  1. Linux
  2. OS X
  3. WIndows
  4. iOS
  5. Android OS
  6. Google chrome OS (Based on Linux)

A good video about operating systems[edit]


An excellent video about operating systems[edit]

Virtual memory[edit]

As we discuss the ways in which an operating system manages resources, we start to learn about virtual memory. A superb video can be found below to help you understand this:

Linux tools to view internal management of resources[edit]

An operating system also provides tools for managing the operating system. These are often called utilities or system tools. Click here for a brilliant graphic showing the different types of tools you can use to view inside the Linux operating system. These tools give you insight and information for how the operating system is managing different resources. Below is a table with resources and tools to help you view how the OS is managing a particular resource.

Resource Linux tools you can use to understand what is going on
Memory top, htop, free, vmstat (vm_stat in OS X)
Processes top
Files File system, df, du, mount, lsof, fs_usage
Security fstab
CPU Scheduling perf
Devices, Device I/O iotop, iostat
Interrupts perf
The user interface, most often a GUI but also a CLI we dont really monitor this
Networks netstat, top, tcpdump, iptraf, iftop, nmon


Standards[edit]

  • I can explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces.

References[edit]