200 likes | 345 Views
Operating Systems I. An Introduction to Operating System Concepts. OS Introduction. Computer applications today require a single machine to perform many operations and the applications may compete for the resources of the machine. This demands a high degree of coordination
E N D
Operating Systems I An Introduction to Operating System Concepts
OS Introduction • Computer applications today require a single machine to perform many operations and the applications may compete for the resources of the machine. • This demands a high degree of coordination • This coordination is handled by system software known as the operating system
Evolution of Operating System • OS for batch jobs • Program execution required significant preparation of equipment • Program execution (job) • OS was a system to simplify program setup and simplify transition between jobs • Physical separation of users and equipment led to computer operators
OS Evolution (cont’d) • Users left jobs with the operator and came back the next day (batch jobs) • Users had no interaction with computer during program execution. Maybe okay for some applications, but not for all.
OS Evolution • OS for Interactive Processing • Allowed programs to carry on dialogue with user via remote terminals (workstations) • Real-time processing • Users demand timely response • Machines too expensive to serve only one user • Common for several users to want interactive services at the same time
OS Evolution (cont’d) • OS for time-sharing • To accommodate multiple real-time users, the OS rotates its various jobs in and out of execution via time-sharing • Each job gets a predetermined “time slice” • At end of time slice current job is set aside and a new one starts • By rapidly shuffling jobs, illusion of several jobs executing simultaneously is created
OS Evolution (cont’d) • Without time slicing, a computer spends most of its time waiting for peripheral devices or users • A collection of tasks can be completed in less time with time-sharing than when completed sequentially
Different Operating Systems on the Same Machine ? • It is possible to have more than one operating system available to be used on a machine. • Only one operating system is run at a time, though. • Examples: • VAX -- VMS or Ultrix • PCs -- DOS, Windows, or Linux
Types of software • Applications software • Performs tasks specific to the machine’s utilization. • System Software • Performs tasks common to computer systems in general • Operating systems vary based on the hardware they’re used on
Types of software (cont’d) • Utility software • Provides fundamental activities, yet not included with OS • “Extends” the OS • Distinction between applications and utilities is often vague • Distinction between OS and utilities is also vague
The OS Shell • Defines interface between OS and users • Windows GUI • UNIX command line • UNIX users can choose among a variety of shells • csh is the “C shell” • tcsh is an enhanced “C shell”
OS Shell interface Users Users Users O / S shell
The OS Kernel • The internal part of the OS is often called the kernel • Kernel Components • File Manager • Device Drivers • Memory Manager • Scheduler • Dispatcher
OS File Manager • Maintains information about the files that are available on the system • Where files are located in mass storage, their size and type and their protections, what part of mass storage is available • Files usually allowed to be grouped in directories or folders. Allows hierarchical organization.
OS Device Drivers • Software to communicate with peripheral devices or controllers • Each driver is unique • Translates general requests into specific steps for that device
OS Memory Manager • Responsible for coordinating the use of the machine’s main memory • Decides what area of memory is to be allocated for a program and its data • Allocates and deallocates memory for different programs and always knows what areas are free
OS Scheduler • Maintains a record of processes that are present, adds new processes, removes completed processes • memory area(s) assigned • priority • state of readiness to execute (ready/wait)
OS Dispatcher • Ensures that processes that are ready to run are actually executed • Time is divided into small (50 ms) segments called a time slice • When the time slice is over, the dispatcher allows scheduler to update process state for each process, then selects the next process to run
OS Summary • Shell -- interface to user • File Manager -- manages mass memory • Device Drivers -- communicate with peripherals • Memory Manager -- manages main memory • Scheduler & Dispatcher -- manage processes
Utilities • Operating systems usually come with some associated utility programs • UNIX usually has the text editors emacs and vi (and sometimes pico) • UNIX has its own sort utility • UNIX has its own mail utility