/>
--------------------------------------------------------------
Application software
.system calls: pid = getpid();
..kernel: internals that do all you see and don't see
.system utilities: ls, cd, cat
..system calls
...kernel
UI: Shell (Unix) Command line(DOS) GUI (Windows)
.system utilities
..system calls
...kernel
==========================================================================!
The system utilities lie below the application layer.
user-accessible programs
tools such as ls, ps, od
========================================================
A system call is just what its name implies -- a request for the
operating system to do something on behalf of the user's program.
functions used in the kernel itself
appears as a normal C function call
manage the file system
control processes
provide interprocess communication (IPC)
========================================================
The kernel provides the essential services that make up the
heart of UNIX systems
allocates memory
keeps track of the physical location of files
loads and schedules and executes binary programs
==========================================================================!
Batch Systems: . Relied on punched cards or tape for input in past Efficiency was measured in throughput (jobs per hour) Real-time operating systems (RTOS): . Control machinery, space flights, airport traffic control . Little user-interface capability - no end-user utilities . Manage the resources of the computer so any operation executes in same amount of time every time - Not slower - OR faster! Single-user, single-tasking operating system: . Manage the computer so that one user can do one thing at a time DOS Single-user, multi-tasking operating system: . Interrupts allow resource sscheduling Windows and the Mac O.S. Multi-user operating systems: . Allows many users to use computer's resources simultaneously . Balance needs of users Ensure all users have what they need Protect users from each other . Unix, VMS Embedded Systems: . Computers placed inside products to add features and capabilities NO OS or small kernel
1940's No standard OS software => machines poorly utilized Program included every instruction needed by computer to perform tasks Programmer loaded and ran software Computer time scheduled like a conference room: 9-10am: Bill Johnson![]()
1950s Emphasis on cost effectiveness: expensive time lags between CPU and I/O Computers were still very expensive: IBM 7094 was priced at $200,000 Two improvements: Computer operators Job scheduling: group together programs with similar requirements devices -------------------------------------------------- GM, SAFE: main function was to automatically execute a new program 1960s Faster CPUs, but their speed caused problems Multiprogramming allowed loading many programs at one time Program scheduling OS taking over functions of operator ----------------------------------------------------- OS/360, IBM: batch, REQUIRED DASD Fred Brooks - Mythical Man Month 1970s Multiprogramming schemes to increase CPU use were limited by physical capacity of main memory - solution? VM ---------------------------------------------------- VMS - 32 bit virtual address! Microcomputer OSs: CP/M, Apple DOS 1980s Improvement in the cost/performance ratio of computer components Hardware became more flexible Introduction of multiprocessing-allowed executing programs in parallel Evolution of personal computers and high-speed communications Introduction of distributed processing and networked systems ----------------------------------------------------- MS-DOS, Windows, Mac OS, Unix 1990s Demand for Internet capability sparked networking capability Increased networking: tighter security Multimedia applications: additional power, flexibility, and device compatibility OS ----------------------------------------------------------- Linux, Windows 95/98, Unix
![]()
![]()
Essential managers of an operating system: Memory Manager Processor Manager Device Manager File Manager User Command Interface is unique to each OS GUI Command
Each subsystem manager must perform the following tasks: Monitor its resources continuously Enforce the policies: who gets what, when, and how much Allocate the resource when it’s appropriate Deallocate the resource when appropriate![]()