Definitions, intro, history Operating System Definitions, intro, history
Layers of Computing Systems Communications Applications Operating Systems Programming Hardware Information
Operating systems layer
Types of software Application software System software is written to address our specific needs to solve problems in the real world. Ex: Word processing programs, games, inventory control systems, automobile, diagnostic programs, and missile guidance programs System software manages a computer system at a fundamental level and interacts directly with the hardware provides the tools and an environment in which application software can be created and run. (e.g. library of graphics software that renders images on a display) Ex: utility software (antivirus software, backup software and disk tools), device drivers (drivers for keyboards, printers, scanners, digital cameras and external storage devices) and firmware (BIOS (Basic Input/Output system) on PC, timing and control systems for washing machines and etc) Operating system (the core of system software) manages computer resources, such as memory and input/output devices, provides an interface through which a human can interact with the computer.
What is OS glue software foundation policeman (traffic warden) that holds the hardware and software together. software foundation on which all other software rests, allowing us to write programs that interact with the machine. policeman (traffic warden) an operating system organizes the efficient flow of programs through a computer system.
What is what? Categorize into application software and system software Opera (Web Browser) Assembler MySQL (Database Software) Microsoft Powerpoint (Presentation Software) iTunes (Music / Sound Software) DOS (Disk Operating System) World of Warcraft (Game Software) Adobe Photoshop (Graphics Software) Disk cleaners (remove any unnecessary files) Disk defragmenters (re-organize file fragments on a hard disk drive to increase performance)
OS Roles Coordinates access to physical resources Provides services CPU, memory, disk, i/o devices, etc. Provides services Protection Scheduling Memory management File systems Synchronization etc.
OS as Government Makes lives easy Makes lives fair Makes lives safe Promises everyone whole machine (dedicated CPU, infinite memory, …) Provides standardized services (standard libraries, window systems, …) Makes lives fair Arbitrates competing resource demands Makes lives safe Prevents accidental or malicious damage by one program to another
“pulling yourself up by your own bootstraps,” booting the computer. Turn-on PC Computer hardware loads a small set of system instructions stored in permanent memory (ROM). These instructions load a larger portion of system software from secondary memory, usually a magnetic disk. Eventually all key elements of the operating system software are loaded, start-up programs are executed, the user interface is provided, and the system is ready for use.
Important OS topics Multiprogramming - is the technique of keeping multiple programs in main memory at the same time; these programs compete for access to the CPU so that they can execute Memory management - The act of keeping track of how and where programs are loaded in main memory Process management - The act of keeping track of information for active processes CPU scheduling – The act of determining which process in memory is given access to the CPU so that it may execute
Development of OS paradigms (History) Phase 0: User at console Phase 1: Batch processing Phase 2: Interactive time-sharing Phase 3: Personal computing
Phase 0: User at Console How things work Advantages Disadvantages One program running at a time No OS, just a sign-up sheet for reservations Each user has complete control of machine Advantages Interactive! No one can hurt anyone else Disadvantages Reservations not accurate, leads to inefficiency Loading/ unloading tapes and cards takes forever and leaves the machine idle
Phase 1: Batch processing How things work Sort jobs and batch those with similar needs to reduce unnecessary setup time Resident monitor provides “automatic job sequencing”: it interprets “control cards” to automatically run a bunch of programs without human intervention Advantages Good utilization of machine -> efficient Disadvantages Loss of interactivity One job can screw up other jobs, need protection
Phase 1: Batch processing The term batch evolved to mean a system in which programs and system resources are coordinated and executed without interaction between the user and the program.
Phase 2: Interactive time-sharing How things work Multiple users per single machine OS with multiprogramming and memory protection Advantages Interactivity Sharing of resources Disadvantages Does not always provide reasonable response time
Phase 3: Personal Computing How things work One machine per person OS with multiprogramming and memory protection Advantages Interactivity Good response times Disadvantages Sharing is harder
Seminars: flipped classroom Topics for the seminar Kernel (what is it, different structures) http://www.systhread.net/texts/200510kdiff.php Core utility and system software https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_components
Bibliography Dale, Computer Science Illuminated, Chapter 10, 11, end of the book exercises J. Brookshear, An Overview of Computer Science 11th ed (intro txt) - (Pearson, 2012) BBS Randy Wang, Operating Systems, System Calls, and Buffered I/O http://study.com/academy/lesson/systems-software-utility-software-device-drivers-firmware-gui.html