* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Operating System Concepts
Survey
Document related concepts
Transcript
Course Instructor: Samra Irshad [email protected] Lecturer CS Objective To develop an understanding of and appreciation for the role of Operating Systems in Computing Environments 3 •TEXT Book: Operating System Concepts by Abraham Silberschatz, Peter B. Galvin and Greg Gagne • Reference Books: Operating System: Internals and Design principles by William Stallings. Operating Systems by Harvey M. Deitel, Paul J. Deitel, David R. Choffnes No Restriction: Different Books. You can choose the book of your own choice • Web Sites & Material: will refer you to different web sites and will provide you with different notes if its required. 4 Course requirements Assignments/Quizes Written assignments (Small Tasks) (details in coming lectures) Idea is to initiate research oriented writing not “cut-copy-paste” Attendance, Presentations, Quiz & Class Discussion & Participation (as a regular activity) Volunteer presentations (you must not be that familiar with this kind of stuff but you need to respond to it quickly!) Formal Presentations in groups Examination Every thing discussed, during the class or given as reading material, could be part of the exams Questions will be formulated in a way to examine conceptual thinking Other details will be given close to Sessional Course Contents Basic Concepts Structures and Functions Process Management Threads Management Inter-Process Communication Synchronization Deadlocks Memory Management Virtual Memory Management File Systems I/O Systems Chapter 1: Introduction Basics of Computer Organization and relation with operating systems What is an Operating System? Multi-programmed Systems Time shared systems Real -Time Systems Multiprocessor Systems Memory Management Process Management Lecture 1 Operating System What is an OPERATING SYSTEM ? Purpose ? Any raw idea… ? Computer System ? Computer System Computer System- why do we use it? Allows you to solve problems Provides you tools/applications, using those tools you can develop programs which will ultimately solve your needs Computer System Computer system is composed of hardware and software Hardware entity of device CPU RAM I/O devices components that comprise the physical Computer Organization basics CPU (Central Processing Unit) : Function of this unit ? ‘Executes a program’ Contains: Arithmetic and Logic Unit for manipulating data A number of registers for storing data Control circuits for fetching and executing instructions CPU Cycle CPU cycle- Fetching, Decoding and Executing Fetching an instruction- CPU reads an instruction from memory Decoding an instruction- determining what actions the instruction require Executing- carrying out those actions Memory Where all the programs/data is stored ? Web browsers, word processor etc… Initially data/program is stored in ‘disk storage’, (also known as ‘secondary memory’). For a program to run/execute, it must reside in ‘MAIN MEMORY’ (RAM) Secondary Storage Secondary Storage- as an extension to main memory Why not store the programs and data all at once in main memory ? Types of storage devices Registers, cache, main memory, electronic disk, magnetic disk, magnetic tapes RAM RAM: Random Access Memory.. Why called Random Access Memory ? Program is brought into main memory from secondary storage so that it can be executed CPU can access ANY location in memory at random and retrieve information within a fixed interval of time ‘Word’ as an entity Execution of a program Primary purpose of a computer system is to generate executable programs and execute them. Following are some of the main issues involved in performing these tasks. Storing an executable program on a secondary storage device such as hard disk Loading executable from disk into the main memory CPU state appropriately so that program execution could begin Multiple processes, synchronizing their access to shared data, and allowing them to communicate with each other I/O devices I/O devices: Human interaction with the system through Input/output devices Real-time data Computer Organization: the way hardware components operate and the way they are connected together to form a computer system Hardware components: CPU, Memory and I/O Motivation for OS If we have only the computer hardware system, what we can do with it ? What are the things required to make a computer system ‘ACTUALLY’ useful ? Operating System A platform/software needed .. Is it so ? Operating System Basics Now coming to Operating Systems….. Essential part of a computer system Provides services to computer user To make more effective use of computer Why do we study it?... To get the knowledge of services provided by operating system E.g. A high-level language program written by user to solve data-processing tasks is an application program while the compiler that translates the program into machine language is task of operating system Layered Structure Multiprogrammed Systems Several jobs are kept in main memory at the same time, and the CPU is multiplexed among them. Multi-programmed Systems Job pool Job-scheduling CPU scheduling OS Features Needed for Multiprogramming Memory management – the system must allocate the memory to several jobs. CPU scheduling – the system must choose among several jobs ready to run. Time-Sharing Systems- Interactive Computing Multi-programmed systems did not provide user interaction The CPU executes multiples jobs by switching among them Switches occur frequently Each job is allocated a small portion of CPU time On-line communication between the user and the system is provided The CPU is multiplexed among several jobs that are kept in memory and on disk The CPU is allocated to a job only if the job is in memory A job is swapped in and out of memory to the disk Bootstrap program Bootstrap program: A program whose function is to start the computer software operating when the power is turned on. Loads a portion of OS to main memory and control is then transferred to OS which prepares the computer for general use Interrupts and Traps Interrupts- Interrupting the normal execution of processor… Examples ? Usually produced by I/O devices Must be handled by the processor by interrupting execution of the currently running process Traps- Events produced by execution of certain instructions…. Examples ? Load and Store Instructions Von-neumann Architecture VS Harvard Architecture Volatile VS Non-volatile Storage Device Hierarchy Computer-System Architecture Single processor systems Single CPU Can also include I/O processor e.g. disk controller processor Multiprocessors systems Also known as parallel systems, tightly-coupled systems Advantages include 1. 2. 3. Increased throughput Economy of scale Increased reliability – graceful degradation or fault tolerance Multi-processing Systems Multiprocessor systems Key role – the scheduler Two types of Multiprocessing: 1. Asymmetric Multiprocessing assigns certain tasks only to certain processors, Master-slave concept… Master processor schedules and allocates work to the slave processors 1. Symmetric Multiprocessing treats all of the processing elements in the system identically Real-Time Systems When given an input, O/P must respond in a very well- defined period of time Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems. Real-Time systems may be either hard (guarantees that critical tasks be completed on time, if not then catastrophe may happen) or soft real-time (no fear of catastrophe) Operating System- A Resource Manager Resource Manager: Resources- CPU, Memory and I/O Secondary Storage Management Manage secondary storage devices Allocate appropriate amount of disk space when files are created De-allocate space when files are removed Ensure that a new file does not overwrite an existing file Main Memory Management Manage primary storage (main memory) Allocate appropriate amount of memory space when programs are to be loaded into the memory for execution De-allocate space when processes terminate Ensure that a new program is not loaded on an existing program Minimize the amount of unused memory space Allow execution of programs larger in size than the available main memory Virtual Memory Processes A program in execution is called a process Single-user and Multiple users In case of multiple processes, how the CPU will be allocated to those evenly ? Some processes getting maximum of CPU time while others are being allocated less ? CPU-time scheduling Process Management Manage processes Allow simultaneous execution of processes by scheduling the CPU Prevent deadlocks between processes Ensure integrity of shared data Synchronize executions of cooperating processes References Operating System Concepts by Silberschatz (7th edition) Computer System Architecture by Morris Mano (3rd edition)