See UNISA – Summary of 2010 Posts for a list of related UNISA posts. This is the first of probably many related posts which introduces a summary of operating system (OS) concepts and an introduction to the overall OS architecture … hope there is something interesting for everyone and that the summaries will prove useful for my UNISA colleagues.
Authors Silberschatz, Galvin and Gagne, have en excellent definition of an operating system in their book “Operating System Concepts”, namely: “An operating system is similar to a government. Lie a government, it performs no useful function by itself. It simply provides an environment within which other programs can do useful work”.
Operating System Concepts
Perhaps the most important area within an operating system is the management of storage, ranging from registers managed by processors and compilers, to magnetic tape used to backup all of the exploding data we are producing around the planet. Storage is important, because other than the more obvious “backup” purpose, it is also used by the operating system as main memory to load and manage programs.
Operating system strategies consist of single- or multiprocessor systems. The latter is used to share devices, such as memory, and split the processing of programs for better performance and throughput. With symmetric multiprocessing (SMP) processors operate as peers and run independently from each other. In the less common asymmetric multiprocessing world, each processor is assigned a specific task, controlled by a master.
Operating systems employ multiprogramming to make optimal use of the central processing unit (CPU), involving job scheduling, CPU scheduling and time sharing (multitasking) concepts, all of which we will explore in subsequent posts.
When I attended the last debugging course, see Kernel Debugging Day 1 – Interesting snippets of information for debugging in the trenches, Kernel Debugging Day 2 – Interesting snippets of information for debugging in the trenches and Kernel Debugging Day 3 – Interesting snippets of information for debugging in the trenches comes to an end for details, I realised that a key role of the operating system is synonymous with the governments use of police and army to create a secure, consistent and reliable environment.
One of the most common approaches by hardware and operating system architectures is the use of two modes: user mode and kernel mode. Privileged operations are limited to kernel mode, thus ensuring that interference and corruption is avoided, such as the corruption of the main memory, which would potentially impact multiple programs, threads and processes.
Another common approach is the use of a timer, used to interrupt the computer and operating system periodically, used to prevent processor hogging programs and time/interval calculations. The management of time is especially important in real time systems, where time constraints and responsiveness are key.
So, in essence the operating system (computer government) is responsible for:
- An efficient and convenient environment for users to work with programs on hardware.
- Efficient resource allocation and management.
- Supervision of resources and program execution.
- Prevention of errors and unauthorised access and use of resources.
All of these topics will form part of this years exploration of operating systems.
The soft real-time systems employ strategies such as scheduling real-time tasks at a higher priority than other tasks, while hard real-time guarantee servicing intervals. The former is typical in most common operating systems servicing us humans, scheduling and balancing a platter of applications such as compilers, mail, calendars and games. The latter is less common and typically found in critical systems such as nuclear power plant management systems, aircraft autopilot systems, navigation systems and military guidance systems.
Influential Operating Systems
Possibly my only critique of this specific course and the books we are expected to digest from front to back, is that the CTOS operating system is not mentioned anywhere. While it lacked the graphical user interface, it shipped with all the operating system concepts, bells and whistles (back in the early 80’s) that many of the influential operating systems of today are based on.
The influential operating systems are mentioned by the course literature as follows:
- Early Systems (the era of punch tape and cards)
- Altas (1961) – batch operating system with spooling
- CTSS (1962) – Experimental time-sharing system
- XDS-940 (1965) – paging memory management
- MULTICS (1965) – extension of CTSS, paged memory segmentation
- IBM OS/360 (1966) – common I/O subroutines, privileged instructions, memory protection and batch processing
- RC 4000 (1970) – operating system kernel for re-use to build complete OS
- CP/M (1970) – 64KB memory, one program at a time, text based … one I completed my Fortran and Basic programming curriculums on back in the 80’s
- MS/DOS (1981) – 640KB memory, extended and expanded memory
- Macintosh (1987) – mouse, new user interface
- Windows 1.0 (1985) – protected memory, context switching, graphical windowing user interface
- Windows 7.0 (2009) – had I seen this OS when i started on my career on ZX Spectrum and CP/M systems in the early 80’s, I would have thought that I was in a science fiction movie
See you for part 2 which will explore system structures.
| CMOS – Complementary Metal-Oxide Semiconductor | CPU – Central Processing Unit | DRAM – Dynamic Random Access Memory | GB – Gigabyte (109 bytes)| MB – Megabyte (one million bytes 106) | ns – Nanosecond (billionth of a second 10-9) | OS – Operating System | RAM – Random Access Memory | sec – Second | SMP – Symmetric Multi Processing | SRAM – Static Random Access Memory