Plat Tech Prelims
Introduction to Operating Systems
An Operating System (OS) utilizes hardware resources of processors to provide various services to users.
It manages secondary memory and I/O devices.
Comprises software and files for booting and executing programs.
Controls hardware and coordinates usage among different programs and users.
Includes kernel, administration tools, and system libraries.
Objectives of Operating Systems (Stallings, 2018)
Convenience: Makes a computer easy to use.
Efficiency: Utilizes computer resources effectively.
Support Development: Facilitates the creation and testing of new functions/software.
Key Functions of Operating Systems (Stallings, 2018)
Program Development: Provides tools for application development (editors, debuggers).
Program Execution: Manages processes for program execution (loading, scheduling).
Access to I/O Devices: Hides complexity with a uniform interface for I/O operations.
File Control: Understands data structure in file storage and safeguards access.
System Resource Access: Manages access to system resources through function calls.
Error Management: Detects and responds to errors with minimal disruption.
Performance Monitoring: Collects usage statistics, like response time, for improvements.
Instruction Set Architecture (ISA): Defines machine language instruction collection.
Application Binary Interface (ABI): Standardizes binary portability across programs.
Application Program Interface (API): Allows programs to access OS functions and resources.
Resource Management Role of Operating Systems (Stallings, 2018)
OS manages processor time and resource allocation like other programs.
Evolution of Operating Systems
Evolve due to hardware upgrades, new/improved services, and fixes to faults.
Serial Processing (Stallings, 2018)
Period: Late 1940s to mid-1950s.
Programmers interacted directly with hardware.
Operating through console operations (lights, switches, input device, printer).
Problems:
Scheduling: Limited computer time maximization, leading to wasted resources.
Set-up Time: Long setup processes for jobs (tapes, card decks) with risks of errors.
Simple Batch Systems (Silberschatz et al., 2018)
Developed: Mid-1950s to enhance resource utilization.
Jobs processed in bulk using a monitor for automatic job sequencing.
Multi-programmed Batch Systems (Stallings, 2018)
More advanced systems maintaining multiple ready-to-run jobs in memory.
Requires memory management and scheduling algorithms for processor access.
Time-sharing Systems (Stallings, 2018)
Multiple users access the system simultaneously via terminals.
OS interleaves execution of user programs in short bursts.
Example: Compatible Time-sharing System (CTSS) by MIT.
Major Areas in OS Development
Processes
Memory Management
Information Protection and Security
Scheduling and Resource Management
Overview of Some Operating Systems (Stallings, 2018)
Microsoft Windows Operating System
Originally an extension to MS-DOS.
Modular architecture allows function management by individual components.
Kernel Components of Microsoft Windows OS
Windows Executive: Core modules; includes I/O manager, cache manager, object manager, etc.
Windows Kernel: Manages processor execution, scheduling, and interrupts.
Hardware Abstraction Layer (HAL): Standardizes hardware interactions for OS components.
Device Drivers: Dynamic libraries translating user I/O requests.
Classic UNIX System
Developed at Bell Labs, initially in assembly, later in C.
Three architecture levels: user level, hardware level, system kernel.
Modern UNIX System
Emerged to unify innovations and design features.
System V Release 4 (SVR4): Joint development featuring real-time processing, virtual memory, etc.
Linux Operating System
Started as a UNIX variant by Linus Torvalds in 1991.
Free, open-source, modular; runs across various platforms.
Composed of loadable modules for dynamic management.
Android Operating System
A Linux-based system designed for mobile phones, initiated by Android, Inc.
Smaller kernel excluding non-mobile drivers; relies on core system services.
Active development community via Android Open-Source Project (AOSP).