OVERVIEW OF MULTIMEDIA OPERATING SYSTEMS

Size: px
Start display at page:

Download "OVERVIEW OF MULTIMEDIA OPERATING SYSTEMS"

Transcription

1 OVERVIEW OF MULTIMEDIA OPERATING SYSTEMS Report submitted in partial fulfillment of the requirement for the degree of B.Sc. In Electrical and Electronic Engineering Under the Supervision of Dr. ElRasheed Osman Khidir By Moaaz AlHaj Ali Mohammed Mahdi To Department of Electrical and Electronic Engineering University of Khartoum July 2005

2 To my parents, my family, my colleagues and my friends.

3 ACKNOWLEDGEMENT I would like to express my deep and sincere gratitude to my supervisor Dr. ElRasheed Osman Khidir. for his advise, encouragement and support. Also I want to express my warm thanks to the Department of Electrical and Electronic Engineering, University of Khartoum staff members; for their appreciated efforts to enhance the department. I wish to thank Ali Yasin, one of my Java references; for his patience and useful programming advices.

4 TABLE OF CONTENTS Dedication ii Acknowledgment... iii Abstract. iv.. مستخلص v CHAPTER 1: INTRODUCTION 1.1 WHAT IS AN OPERATING SYSTEM COMPUTER SYSTME LAYERS OPERATING SYSRM COMPONENTS Process Management Memory Management File Management Secondary Storage Management I/O System OVERVIEW... 5 CHAPTER 2: MULTIMEDIA OPERATING SYSTEMS 2.1 INTRODUCTION TO MULTIMEDIA What is the Multimedia Multimedia Fields and Uses Multimedia Characteristics Multimedia Files Video Compression PROCESS MANAGEMENT Real time Processing requirements and the System Model Scheduling Homogenous Processes General Real-Time Scheduling Rate Monotonic Scheduling Earliest Deadline First Scheduling MULTIMEDIA FILE SYSTEM PARADIGMS FILE PLACEMENT Placing a File on a Single Disk Two Alternative File Organization Strategies Placing Multiple Files on a Single Disk Placing Files on Multiple Disks DISK SHEDULING FOR MULTIMEDIA Static Disk Scheduling Dynamic Disk Scheduling. 23 CHAPTER 3: SIMULATION 3.1 PROGRAM SPECIFICATIONS PROGRAM DESIGN CHAPTER 4: ANALYSIS 4.1 RESULTS DISCUSSIONS. 37 CHAPTER 5: CONCLUSION 5.1 CONCLUSION RECOMMENDATIONS APPENDIX: PROGRAM CODE. I

5 This chapter is an introduction of the operating system. It begins with the definition of the operating system. Then it illustrates the layers of the computer system the components of the operating system are discussed briefly. 1.1 WHAT IS AN OPERATING SYSTEM? The operating system is a program that acts as an intermediary between a user of a computer and the computer hardware. The purposes of an operating system are: Convenience; Makes the computer system more convenient to use. Efficiency; Makes computer resources to be used in an efficient manner. Ability to evolve. Protection; fairness, security and safety [1]. 1.2 COMPUTER SYSYEM LAYERS An operating system is an important part of almost every computer system. A computer system can roughly be divided into five layers Figure (1-1), illustrates theses layers: 1. Computer Hardware: provides basic computing resources (CPU, memory, I/O devices). 2. Operating system: controls and coordinates the use of the hardware among the various application programs for the various users. 3. Utilities: include system programs (e.g. editors, compilers etc) 4. Applications programs: include the ordinary programs which most of users are familiar to use (database systems, video games, business programs). 5. End User: (people, machines, other computers). End User Application Programs Utilities Operating System Programmer Operating System Designer Computer Hardware Figure (1-1) The layers of the computer system

6 It is obvious that different people can reach each layer. The designer of the operating system can deal with the hardware of the computer. The programmer has the ability to use the system programs. If he is a professional programmer, he can deal with the operating system [1], [4]. 1.3 OPERATING SYSTEM COMPONENTS A system as large and complex as an operating system can only be created by partitioning it into smaller pieces. Each of these pieces should be a well defined portion of the system with carefully defined inputs, outputs, and function. Obviously, not all systems have the same structure. However, many modern operating systems share the system components outlined below [1] Process Management In general, a process needs certain resources such as CPU time, memory, files, I/O devices, etc., to accomplish its task. These resources are given to the process when it is created. In addition to the various physical and logical recourses that a process obtains when it is created, some initialization data (input) may be passed along. For example, a process whose function is to display on the screen of a terminal the status of a file, say F1, will get as an input the name of the file F1 and execute the appropriate program to obtain the desired information. A process is the unit of work in a system. Such a system consists of a collection of processes, some of which are operating system processes, those that execute system code, and the rest being user processes, those that execute user code. All of those processes can potentially execute concurrently. The operating system is responsible for the following activities in connection with processes managed. The creation and deletion of both user and system processes. The suspension and resumption of processes. The provision of mechanisms for process synchronization. The provision of mechanisms for deadlock handling [1] Memory Management Memory is central to the operation of a modern computer system. Memory is a large array of words or bytes, each with its own address. Interaction is achieved through a sequence of reads or

7 writes of specific memory address. The CPU fetches from and stores in memory. In order for a program to be executed it must be mapped to absolute addresses and loaded into memory. As the program executes, it accesses program instructions and data from memory by generating these absolute is addresses. Eventually, the program terminates, its memory space is declared available and the next program may be loaded and executed. In order to improve both the utilization of CPU and the speed of the computer's response to its users, several processes must be kept in memory. There are many different algorithms depends on the particular situation. Selection of a memory management scheme for a specific system depends upon many factors, but especially upon the hardware design of the system. Each algorithm requires its own hardware support. The operating system is responsible for the following activities in connection with memory management. Keep track of which parts of memory are currently being used and by whom. Decide which processes are to be loaded into memory when memory space becomes available. Allocate and deallocate memory space as needed [1] File Management File management is one of the most visible services of an operating system. Computers can store information in several different physical forms; magnetic tape, disk and CD's are the most common forms. Each of these devices has it own characteristics and physical organization. For convenient use of the computer system, the operating system provides a uniform logical view of information storage. The operating system abstracts from the physical properties of its storage devices to define a logical storage unit, the file. Files are mapped, by the operating system, onto physical devices. A file is a collection of related information defined by its creator. Commonly, files represent programs (both source and object forms) and data. Data files may be numeric, alphabetic or alphanumeric. In general a file is a sequence of bits, bytes, lines or records whose meaning is defined by its creator and user. It is a very general concept. The operating system implements the abstract concept of the file by managing mass storage device, such as types and disks. Also files are normally organized into directories to ease their use.

8 Finally, when multiple users have access to files, it may be desirable to control by whom and in what ways files may be accessed. The operating system is responsible for the following activities in connection with file management: The creation and deletion of files. The creation and deletion of directory. The support of primitives for manipulating files and directories. The mapping of files onto disk storage. Backup of files on stable (non volatile) storage [1] Secondary Storage Management The main purpose of a computer system is to execute programs. These programs, together with the data they access, must be in main memory during execution. Since the main memory is too small to permanently accommodate all data and program, the computer system must provide secondary storage to backup main memory. Most modem computer systems use disks as the primary on-line storage of information, of both programs and data. Most programs, like compilers, assemblers, sort routines, editors, formatters, and so on, are stored on the disk until loaded into memory, and then use the disk as both the source and destination of their processing. Hence the proper management of disk storage is of central importance to a computer system. The operating system is responsible for the following activities in connection with disk management Free space management. Storage allocation. Disk scheduling I/O System One of the purposes of an operating system is to hide the peculiarities of specific hardware devices from the user. For example, in UNIX, the peculiarities of I/O devices are hidden from the bulk of the operating system itself by the I/O system. The I/O system consists of: A buffer caching system A general device driver code

9 Drivers for specific hardware devices. Only the device driver knows the peculiarities of a specific device [1]. Multimedia Operating Systems are the operating systems that can deal with the multimedia files. Multimedia files are different from the traditional files (e.g. texts). They need special considerations for process management, secondary storage management, file management, and so on. Understanding these considerations is that what this project is trying to solve. 1.4 Overview Chapter 2: In this chapter, the problem of understanding multimedia operating system is tried to be covered. Chapter 3: In this chapter, a simulation program to reflect the multimedia requirements is discussed with the algorithms used in this simulation. Chapter 4: This Chapter will analyze the results obtained from the simulation program. Chapter 5: Finally, the conclusions and recommends of this project are to be discussed in this chapter.

10 As it was mentioned in section 1.4 this project is trying to understand how do the operating systems deal with multimedia files in terms of processing, storage, managing the disks, etc. these are supposed to be applied for a video server but also some ideas can be applied to a personal computer. The video server is a powerful computer that stores many movies in its file system. 2.1 INTRODUCTION TO MULTIMEDIA This section will introduce the basic concepts and terminologies related to multimedia including the definition of the multimedia, areas of use multimedia, the basic characteristics of multimedia files and a brief discussion for the compression of multimedia files What is the Multimedia? Multimedia can have a many definitions these include: Multimedia means that computer information can be represented through audio, video, and animation in addition to traditional media (i.e., text, graphics drawings, and images). A good general definition is: Multimedia is the field concerned with the computer-controlled integration of text, graphics, drawings, still and moving images (Video), animation, audio, and any other media where every type of information can be represented, stored, transmitted and processed digitally. A Multimedia Application is an Application which uses a collection of multiple media sources e.g. text, graphics, images, sound/audio, animation and/or video [5]. The term movie refers to the complete product of both image and sound [2]. The multimedia process is concerned as a real-time process so that it must be deliver the results of the processing in a given time-span. [6] Multimedia Fields and Uses On a single computer, multimedia often means playing a prerecorded movie (e.g. from a DVD). Another use is for downloading video clips over the internet. The creation of video games also takes an area where multimedia is becoming important. The great use of multimedia is in video on demand. With video on demand, people have the ability for consumers at home to select a movie using their television remote control (or mouse) and have it displayed on their TV set (or computer monitor) on the spot. Figure(2-1) shows the infrastructure of the video on demand [2]. Multimedia also takes an important place in fields like medicine and education. In The field of medicine it is now available to make a surgery with the technology of Telesurgery. The education is now more easier with the tecknology of Teleeducation. 6

11 Fiber Junction box House Distribution Network (a) Copper twisted pair Video server Fiber Junction box Distribution Network (b) Cable TV coaxial cable Figure(2-1) video on demand using different local distribution technologies. (a) ADSL vs. (b) TV cable Multimedia Characteristics Multimedia has three characteristics that must be well understood to deal with it successfully: 1. Multimedia uses extremely high data rates. 2. Multimedia requires real-time playback. 3. Multimedia files can be quite large [2], [8]. Multimedia applications may be sensitive to timing delays during playback of the media [1]. Variability in delivery rates is called jitter [2]. The real-rime properties required to playback multimedia acceptably are often described by quality of service (QoS) parameters [2]. These parameters include: Throughput: The total amount of work completed during a specific time interval. Delay: The elapsed time from when a request is first submitted to when the desired result is produced. Jitter: The delays that occur during playback of a stream. Reliability: How errors are handled during transmission and processing of continuous media.[8] 7

12 2.1.4 Multimedia Files In most systems an ordinary text file consists of a linear sequence of bytes without any structure that the operating system knows about or cares about. With multimedia, the situation is more complicated. To start with, video and audio are completely different. They are captured by distinct devices, have a different internal structure (video has frames/sec; audio has 44,000 samples/sec), and they are played back by different devices. It is more convenience to have multiple language selections for the audio and the text. This can be shown in Figure (2-2). Some way to keep the subfiles synchronized is needed [2]. Frame Video English audio French audio German audio English subtitles Hello, Bob Hello, Tom Nice day Sure is How are you Great And you Dutch subtitles Dag, Bob Dag, Tom Mooie dag Jazker Hoe geat het Preima En jijj Figure (2-2) A movie may consist of several files Video Compression All compression systems require two algorithms: one for compressing the data at the source, and another for decompressing it at the destination. In the literature, these algorithms are referred to as the encoding and decoding algorithms, respectively. JPEG compression is the standard for compressing continuous-tone still pictures (e.g. photographs), while MPEG is the standard for compression videos [2]. MPEG-2 output consists of three different kinds of frames that have to be processed by the viewing program [2]: 8

13 1. I (Intracoded frames): are coded without any reference to other images. MPEG makes use of JPEG for I frames. They are points for random access in MPEG streams and can be used as a reference for the coding of other images. 2. P frames (predictively coded frames): require information from the previous I and/or P frame for encoding and decoding. 3. B frames (bidirectionally predictively coded frames ): require information from the previous and the following I and/or P frames for encoding and decoding [7] 2.2 PROCESS MANAGEMENT Process management deals with the resource main processor. The process manager maps single processes onto resources according to a specified scheduling policy such that all processes meet their requirements. In most systems, a process under control of the process manager can adopt one of the following states: New: The process is being created. Ready: The process is waiting to be assigned to a processor. Running: Instructions are being executed. Waiting: The process is waiting for some event to occur. Terminated: The process has finished execution [1]. These states are illustrated in Figure (2-3). New Admitted Interrupt Exit Terminated Ready Running Scheduling/dispatch I/O or event completion Waiting I/O or event wait Figure (2-3) Diagram of process state The process manager is the scheduler. This entity transfers a process into the ready-to-run state by assigning it a position in the respective queue of the dispatcher, which is the essential part of the operating system kernel. The dispatcher manages the context switch and hence the transition from the ready-to-run state. In most operating systems, the next process to run is chosen according to a priority policy. Between processes with the same priority, the one with the longest ready time is chosen. Current general-purpose existing operating systems must be considered for 9

14 multimedia processing and be the basis of continuous media processing on servers and personal computers [3] Real-Time Processing Requirements and the System Model Continuous media data processing must occur in exactly predetermined, usually periodic intervals. Operations on these data recur over and over and must be completed at certain deadlines. The real-time process manager determines a schedule for the CPU resource that allows it to make reservations and to give processing guarantees. For scheduling of multimedia tasks, two conflicting goals must be considered: 1. An uncritical process should not suffer from starvation because time-critical processes are executed. Multimedia applications rely as much on text and graphics as on audio and video. Therefore, not all resources should be occupied by the time-critical processes and their management processes. 2. On the other hand, a time-critical process must never be subject to priority inversion. The scheduler must ensure that any priority inversion (also between time critical processes with different priorities) is avoided or reduced as much as possible. Real-time requirements of multimedia processes can be partitioned into two groups: (1) Hard-Real-Time requirements. (2) Soft-Real-Time requirements. Table (2-1) shows some differences between the hard real time systems and the soft real time systems and their requirements [3]. Hard Real Time (HRT) Each deadline of a multimedia process must be guaranteed by the process management. (Example: a video process within a Telesurgery application.) HRT systems are designed to run on special purpose platforms to support multimedia applications. HRT systems consider HRT tasks only. Soft Real Time(SRT) Most of the deadlines of a multimedia process are guaranteed by the process management, but some deadlines can be violated over the duration of the task without any catastrophic consequences. (Example: video process within a movie-ondemand application.) SRT systems run on general-purpose platforms. SRT systems must consider a richer set of load, for example, coexisting with time-sharing tasks. Table 2-1 Differences between HRT and SRT 0

15 The algorithm that the scheduler uses to decide which of the processes in the ready queue is called scheduling algorithm. There are mainly two types of the scheduling algorithms: 1. Nonpreemptive scheduling algorithm. 2. Preemptive scheduling algorithm. Nonpreemptive scheduling algorithms allow any job or process to run to completion once it has been allocated the processor. After that it will release the CPU and exit. First-Come-First- Service (FCFS) and Shortest Job First (SJF) are two examples of nonpreemptive scheduling algorithm. Preemptive scheduling is used to ensure quick response to high priority process or to ensure fair sharing of the CPU among all processes (time sharing). Round Robin is an example of this type of scheduling [1]. All scheduling algorithms to be introduced are based on the following system model for the scheduling of real-time tasks. A task is a schedulable entity of the system, and it corresponds to the notion of a thread. In a hard real-time system, a task is characterized by its timing constraints, as well as by its resource requirements. The time constraints of the periodic task T are characterized by the following parameters: s: Starting point c: Processing time of T d: Deadline of T p: Period of T r: Rate of T (r = 1/p) whereby 0 c d p (Figure 2-4). d p Periodic task T c 0 s Figure (2-4) Characterization of Periodic Tasks t Process management must solve the following problems: Allow dynamic co-existence and cooperation of multiple independently authored realtime applications with varying timing and resource requirements in order to share limited physical resources available to them. Allow for co-existence of real-time and non-real-time applications. 1

16 Allow for scheduling of these different applications. Provide protections between various applications. To solve these problems, the soft-real-time scheduling frameworks are currently moving in two basic directions to solve the above problems: (1) Reservation-based systems. (2) Adaptation-based systems. Reservation-based systems provide timing guarantees even in overload situations, while adaptation-based systems, provide the best possible timing guarantees, but in case of scarce resources, achieve dynamic reallocation of resources and deliver graceful degradation for multimedia applications [3] Scheduling Homogenous Processes If there is a video server supports the display of a fixed number of movies all using the same frame rate, video resolution, data resolution, data rate, and other parameters, a simple but effective scheduling algorithm is as follow. For each movie, there is a single process (or thread) whose job is to read the movie from the disk one frame at a time and then transmit that a frame to the user. Since all processes are equally important, have the amount of work to do per frame, block when they have finished processing the current frame, round robin scheduling does the job just fine. Timing mechanism is needed to make sure each process runs at the correct frequency. This can be achieved by a master clock that ticks at, say, 30 times/sec [2] General Real-Time Scheduling Unfortunately, this model rarely applicable in reality. The number of users changes as viewers come and go, frame sizes vary widely due to the nature of video compression (I-frames are much larger than P- or B-frames), and different movies may have different resolutions As a consequence, different processes may have to run at different frequencies, with different amount of work, and with different deadlines by which the work must be completed. The model that is considered for real-time scheduling was introduced in the previous subsection. As an example consider the three processes A, B and C shown in Figure (2-5). Process A runs every 30 msec. Each frame requires 10 msec of CPU time. In the absence of competition, it would run in the bursts A1, A2, A3, etc. Each one starting 30 msec after the previous one. Each CPU burst handles one frame and has a deadline: it must complete before the next one is to start. Also shown in the figure, two other processes B and C. Process B runs 25 times/sec and process C runs 20 times/sec. The computation time per frame is shown as 15 msec and 5 msec 2

17 for B and C, respectively, just to make the scheduling problem more general than having all of them the same. The problem is now how to schedule A,B and C to make sure they meet their respective deadlines. Before that, if this set of processes is schedulable?. The system is schedulable if and only if: m i 0 ci 1 p i where, m: is the number of processes c: is the processing time, and p: is the period of the process. In this case m=3. A is eating 10/30 of the CPU, B is eating 15/40 of the CPU and C is eating 5/50 of the CPU. Together these fractions add to of the CPU, so the system is schedulable. Starting moment For A1, B1, C1 Deadline for B1 Deadline for A1 Deadline for C1 A1 A2 A3 A4 A5 B1 B2 B3 B4 C1 C2 C Time (msec) Figure(2-5) Three periodic process, each displaying a movie. The frame rates and processing requirements per frame are different for each movie. Real-time algorithms can be either static or dynamic. Static algorithms assign each process a fixed priority in advance and then do prioritized preemptive scheduling using those priorities. Dynamic algorithms do not have fixed priorities [2] Rate Monotonic Scheduling The rate monotonic scheduling principle was introduced by Liu and Layland in It is an optimal, static, priority-driven algorithm for preemptive, periodic jobs. It can be used for processes that meet the following conditions: 1. Each periodic process must complete within its period. 2. No process is dependent on any other process. 3. Each process needs the same amount of CPU time on each burst. 3

18 4. Any nonperiodic processes have no deadline. 5. Process preemption occurs instantaneously and with no overhead. Static priorities are assigned to tasks, once at the connection set-up phase, according to their request rates. For example, a process that must run every 30 msec (33 times/sec) gets priority 33, a process that must run every 40 msec (25 times/sec) gets priority 25, and a process that must run every 50 msec (20 times/sec) gets priority 20. at run time, the scheduler always runs the highest priority ready process, preempting the running process if need be. Liu and Layland proved that RMS is optimal among the class of static scheduling algorithms. Figure (2-6) shows how rate monotonic scheduling works in the example of Figure(2-5). Processes A, B and C have static priorities, 33, 25 and 20, respectively, which mean that whenever A needs to run, it runs preempting any other process currently using the CPU. Process B can preempt C, but not A. Process C has to wait until the CPU is otherwise idle in order to run. In Figure(2-6), initially all three processes are ready to run. The highest priority one, A, is chosen, and allowed to run until it completes at 15 msec, as shown in the RMS line. After it finishes, B and C are run in that order. Together, these processes take 30 msec to run, so when C finishes, it is time for A to run again. This rotation goes on until the system goes idle at t=70. At t=80, B becomes ready and runs. However, at t=90, a higher process, A, becomes ready, so it preempts B and runs until it is finished, at t=100. At that point the system can choose between finishing B or starting C, so it chooses the highest priority process, B [2]. A A1 A2 A3 A4 A5 B C B1 B2 B3 B4 C1 C2 C3 RMS C EDF A1 B1 C1 A2 B2 C2 A3 B3 A4 B3 C3 A5 A1 B1 C1 A2 B2 C2 A3 B3 A4 C3 A5 B4 B Time (msec) Figure(2-6) An example of RMS and EDF real-time scheduling Earliest Deadline First Scheduling Another popular real-time scheduling algorithm is Earliest Deadline First. EDF is a dynamic algorithm that does not require processes to be periodic, as does the RMS algorithm. 4

19 Nor does it require the same run time per CPU burst, as does RMS. Whenever a process needs CPU time, it announces its presence and its deadline. The scheduler keeps a list of runnable processes, sorted on deadline. The algorithm runs the first process on the list, the one with the closet deadline. Whenever a new process becomes ready, the system checks to see if its deadline occurs before that of the currently running process. If so, the new process preempts the current one. An example of EDF is given in Figure(2-6). Initially all three processes are ready. They are run in the order of their deadlines. A must finish by t=30, B must finish by t=40, and C must finish by t=50, so A has the earliest deadline and thus goes first. Up until t=90 the choices are the same as RMS. At t=90, A becomes ready again, and its deadline is t=120, the same as B's deadline. The scheduler could legitimately choose either one to run, but since in practice, preempting B has some nonzero cost associated with it, it is better to let B continue to run [2]. Figure(2-7) shows another example. The periods of A, B and C are the same as before, but now A needs 15 msec of CPU time per burst instead of only 10 msec. the schedulability test computes the CPU utilization as = with RMS, the priorities of the three processes are still 33, 25 and 20 as only the period matters, not the run time. This time, B1 does not finish until t=30, at which time A is ready to roll again. By the time A is finished, at t=45, B is ready again, so having a higher priority than C, it runs and C misses its deadline. RMS fails. With EDF, at t=30 there is a constant between A2 and C1. Because C1's deadline is 50 and A2's deadline is 60, C is scheduled. This is different from RMS, where A's higher priority wins. At t=90 A becomes ready for the fourth time. A's deadline is the same as that of the current process (120). So the scheduler has a choice of preempting or not. It is better not to preempt if it is not needed, so B3 is allowed to complete. A B A1 B1 A2 A3 A4 A5 B2 B3 B4 C C1 C2 C3 RMS C EDF A1 B1 A2 A1 B1 C1 A2 B2 Failed B2 A3 C2 B3 A4 C3 A5 B Time (msec) Figure(2-7) Another example of real-time scheduling with RMS and EDF 5

20 Why RMS was failed? Basically using static priorities only works if the CPU utilization is not too high. Liu and Layland proved that for any system of periodic processes, if: m i 1 ci p i m(2 1/ m 1) Then RMS is guaranteed to work. For 3, 4, 5, 10, 20, and 100, the maximum permitted utilization are 0.780, 0.757, 0.743, 0.718, and As m, the maximum utilization is asymptotic to ln2. In contrast, EDF always works for any schedulable set of processes. It can achieve 100% CPU utilization [2]. 2.3 MULTIMEDIA FILE SYSTEM PARADIGMS To access a file, a process first issues an open system call. If this succeeds, the caller is given some kind of token, called a file descriptor in UNIX or a handle in Windows to be used in future calls. At that point the process can issue a read system call, providing the token, buffer address, and byte count as parameters. The operating system then returns the requested data in the buffer. Additional read calls can then be made until the process is finished, at which time it calls close to close the file and return its resources. This model does not work well for multimedia on account of the need for real-time behavior. It works especially poorly for displaying multimedia files coming off a remote video server. One problem is that the user must make the read calls fairly precisely spaced in time. A second problem is that the video server must be able to supply the data blocks without delay, something that is difficult for it to do when the requests come in unplanned and no resources have been reserved in advance. To solve these problems, a completely different paradigm is used by multimedia file servers: they act like VCRs (Video Cassette Recorders). To read a multimedia file, a user process issues a start system call, specifying the file to be read and various other parameters, for example, which audio and subtitle tracks to use. The video server then begins sending out frames at the required rate. It is up to the user to handle them at the rate they come in. If the user gets bored with the movie, the stop system call terminates the stream. File servers with this streaming model are often called push servers (because they push data at the user) and are contrasted with traditional pull servers where the user has to pull the data in one block at a time by repeatedly calling read to get one block after another. The difference between these two models is illustrated in Figure (2-8) [2]. 6

21 Time Video server Request 1 Client Video server Start Client Block 1 Block 1 Request 2 Block 2 Block 2 Block 3 Block 4 Request 3 Block 5 Block 3 (a) Figure (2-8) (a) A pull server. (b) A push server. (b) 2.4 FILE PLACEMENT Multimedia files are very large, are often written only once but read many times, and to be accessed sequentially. Their playback must also meet strict quality of service criteria. Together theses requirements suggest different file system layouts than traditional operating system use Placing a File on a Single Disk It is not desirable to have multiple seeks during a frame. By using contiguous files we can eliminate interfile seeks on video servers. Normally, it does not work well, but on a video server that is carefully preloaded in advance with movies that do not change afterward it can work. Interleaving of video, audio and text files will be more efficient than each video, audio and text files without interleaving. Here, the video for frame 1 is directly followed by the various audio tracks for frame 1 and then the various text tracks for frame 1. Figure(2-9) shows this. Frame 1 Frame 2 Frame 3 Video A A A T T Video A A A T T Video A A A T T Audio track Text track Figure(2-9) Interleaving of video, audio and text in a single contiguous file per movie 7

22 This organization eliminates all seeks and does not require any overhead for keeping track of which frame is where on the disk since the whole movie is one contiguous file. In a video server with multiple concurrent output streams this organization will be lost on because after reading a frame from one movie, the disk will have to read in frames from many other movies before coming back to the first one [2] Two Alternative File Organization strategies Two other file placement organizations are considered. The first of these, the small block model shown in Figure(2-10a). In this organization, the disk block size is chosen to be considerably smaller than the average frame size, even for P-frames and B-frames. For example, average frame is 16KB and the block size is 2KB. The idea here is to have a data structure, the frame index per movie with one entry for each frame pointing to the start of the frame. Each frame itself consists of all the video, audio and text tracks for that frame as a contiguous run of disk blocks, as shown. In this way, reading frame k consists of indexing into the frame index to find the k-th entry, and then frame k reading in the entire frame in one disk operation. Since different frames have different sizes, the frame size (in blocks) is needed in the frame index, but even with one 1KB disk blocks, an 8-bit field can handle a frame up to 255KB. Figure(2-10) Non contiguous movie storage The other way to store the movie is by using a large disk block (say 256KB) and putting multiple frames in each block, as shown in Figure(2-10b). An index is still needed, but now it is a block index rather than a frame index. In general, a block will not hold an integral number of frames, so something has to be done to deal with this. Two options exist. 8

23 In the first option, which is illustrated in Figure(2-10b), whenever the next frame does not fit in the current block. The rest of the block is just left empty. This wasted space is internal fragmentation. On the other hand, it is never necessary to do a seek in the middle of a frame. The other option is to fill each block to the end, splitting frames over blocks. This option introduces the need for seeks in the middle of frames, which can hurt performance, but saves disk space by eliminating internal fragmentation. For comparison purpose, the use of small blocks in Figure (2-10a) also wastes some disk space because a fraction of the last block in each frame is unused. With a 1KB disk block and a 2-hour movie consisting of 216,000 frames, the wasted disk space will only be about 108KB out of 3.6GB. The wasted space is harder to calculate for Figure(2-10b), but it will have to be much more because from time to time there will be 100KB left at the end of a block with the next frame being an I-frame larger than that. On the other hand, the block index is much smaller than the frame index. With a 256KB block and an average frame of 16KB, about 16 frames fit in a block, so a 216,000-frame movie needs only 13,500 entries in the block index, versus 216,000 for the frame index. For performance reasons, in both cases the index should list all the frames or blocks (i.e. no indirect blocks as UNIX), so typing up 13,500 8-byte entries in memory (4 bytes for the disk address, 1 byte for the frame size, and 3 bytes for the number of the starting frame) versus 216,000 5-byte entries (disk address and size only) saves almost 1MB of RAM while the movie is playing. These considerations lead to the following trade-offs: 1. Frame index: Heavier RAM usage while movie is playing; little disk wastage. 2. Block index (no splitting frames over blocks): Low RAM usage; major disk wastage. 3. Block index (splitting frames over blocks is allowed): Low RAM usage; no disk wastage; extra seeks [2] Placing Multiple Files on a Single Disk Here we are interesting in placing many movies on a video server. Some movies are more popular than others and taking popularity into account when placing movies on the disk. Zipf's law states if movies, books, web pages or words are ranked on their popularity, the probability that the next customer will choose the item ranked k-th in the list is C/k, where, where C is a normalized constant. Thus the fraction of hits for the top three movies are C/1, C/2 and C/3, respectively, where C is computed such that the sum off all items is 1. in other words if there are N movies, then: C/1+C/2+C/3+ +C/N = 1 From this equation, C can be calculated. 9

24 Frequency of use For movies on a server, Zipf's law states that the most popular movies is chosen twice as often as the second most popular movies, three times as often as the third most popular movies and so on. Despite the fact that the distribution falls off fairly quickly at the beginning.for example movie 50 has a popularity of C/50 and movie 51 has a popularity of C/51, so movie 51 is 50/51 as popular as movie 50 only about a 2% difference. As one goes out further on the tail, the percent difference between consecutive movies becomes less and less. Once conclusion is that the server needs a lot of movies since there is substantial demand for movies out side the top10. Knowing the relative popularities of different movies makes it possible to model the performance of a video server and to use that information for placing files. The best strategy used is the organ-pipe algorithm. It consists of placing the most popular movie in the middle of the disk, with the second and third most popular movies on either side of it. Outside of these come numbers four and five, and so on, as shown in the Figure(2-11). This placement works best if each movie is a contiguous file of the type shown in Figure(2-9), but can also be used to some extent if each movie is constrained to a narrow range of cylinders. The name of algorithm comes from the fact that a histogram of the probabilities looks like a slightly lopsided organ [2]. Movie 10 Movie 8 Movie 6 Movie 4 Movie 2 Movie 1 Movie 3 Movie 5 Movie 7 Movie 9 Movie 11 Figure(2-11) the organ pipe distribution of files on a video server Placing Files on Multiple Disks To get higher performance, video servers often have many disks that can run in parallel. Sometimes RAIDs are used, but often not because what RAIDs offer in higher reliability at the cost of performance. Video servers generally want high performance and do not care so much about correcting transient errors. 0

25 A more common configuration is simply a large number of disks, sometimes referred as a disk farm. One possible configuration is to put movie A on disk 1, movie B on disk 2, and so on, as shown in Figure(2-12a). In practice, with disks several movies can placed on each disk. This organization is simple to implement and has straightforward failure characteristics: if one disk fails, all the movies on it become unavailable. A disadvantage of this approach is that the load may not be well balanced. If some disks hold movies, the system will not be fully utilized. Of course, once the usage frequencies of movies are known, it may be possible to move some of them to balance the load by hand. A second possible organization is to stripe each movie over multiple disks, four in the example of Figure(2-12b). Let us assume for the moment that all frames are the same size (i.e. uncompressed). A fixed number of bytes from movie A are written to disk 1, then the same number of bytes are written to disk 2, and so on until the last disk is reached (in this case with unit A3). Then the striping continues at the first disk again with A4 and so on until the entire file has been written. At that point movies B, C and D are striped using the same pattern. A possible disadvantage of this striping pattern is that because all movies start on the first disk, the load across the disks may be not balanced. One way to spread the load better is to stagger the starting disks, as shown if Figure(2-12c). Yet another way to attempt to balance the load is to use random striping pattern for each file as shown in Figure(2-12d) [2]. 1 A0 A1 A2 A3 A4 A5 A6 A7 2 B0 B1 B2 B3 B4 B5 B6 B7 3 C0 C1 C2 C3 C4 C5 C6 C7 4 D0 D1 D2 D3 D4 D5 D6 D7 1 A0 A4 B0 B4 C0 C4 D0 D4 2 A1 A5 B1 B5 C1 C5 D1 D5 3 A2 A6 B2 B6 C2 C6 D2 D6 4 A3 A7 B3 B7 C3 C7 D3 D7 (a) (b) 1 A0 A4 B3 B7 C2 C6 D1 D5 2 A1 A5 B0 B4 C3 C7 D2 D6 (c) 3 A2 A6 B1 B5 C0 C4 D3 D7 4 A3 A7 B2 B6 C1 C5 D0 D4 1 A0 A6 B3 B4 C0 C7 D1 D6 2 A2 A5 B1 B7 C2 C6 D2 D5 (d) 3 A1 A4 B2 B5 C3 C4 D3 D4 4 A3 A7 B0 B6 C1 C5 D0 D7 Figure(2-12) for ways of organization multimedia files over multiple disk (a) No striping(b) Same striping pattern for all files. (c) Staggered striping. (d) Random striping. 1

26 2.5 DISK SCHEDULING FOR MULTIMEDIA Static Disk Scheduling In multimedia, each active stream puts a well defined load on the system that is highly predictable. For example, playback made every 33.3 msec.each client wants the next frame in its file and the system has 33.3 msec to provide all the frames (the system needs to buffer at least one frame per stream so that the fetching of frame k+1 can proceed in parallel with the playback of frame k). This predictable load can be used to schedule the disk using algorithms tailored to multimedia operation. Assume that there are 10 users, each one viewing a different movie. Furthermore, we will assume that all movies have the same resolution, frame rate, and other properties. Depending on the rest of the system, the computer may have 10 processes, one per video stream, or one process with 10 threads, or even one process with one thread that handles the 10 streams in round-robin fashion. The details are not important. What is important is that time is divided up into rounds, where a round is the round time (33.3 msec). At the start of each round, one disk request is generated on behalf of each user, as shown in Figure(2-13). Stream Buffer for odd frames Buffer for even frames Block requested Optimization algorithm Order in which disk requests are processed Figure(2-13) In one round, each movie asks for one frame After all the requests have come in at the start of the round, the disk knows what it has to do during that round. It also knows that no other requests will come in until these have been processed and the next round has begun. Consequently, can sort the requests in the optimal way, probably in cylinder order and then process them in the optimal order. In Figure(2-13), the requests are shown sorted in cylindrical order. To keep the flow of data out to the clients moving smoothly, double buffering is needed in the server. During round 1, one set off buffers is used, one buffer per stream. When the round is 2

27 finished, the output process or processes are unblocked and told to transmit frame 1. At the same time, new requests come in for frame 2 of each movie (there might be a disk thread and output thread for each movie). These requests must be satisfied using a second set of buffers, as the first ones are still busy. When round 3 starts, the first set of buffers are now free and can be reused to fetch frame 3 [2] Dynamic Disk Scheduling It was assumed that all streams have the same resolution, frame index and other properties. In fact, different movies may have different data rates, so it is not possible to have one round every 33.3 msec and fetch one frame for each stream. Requests come in to the disk more or less at random. Each read request specifies which block is to be read and in addition at what time the block is needed, that is, the deadline. For simplicity, it is assumed that the actual service time for each request is the same (even though this is certainly not true). In this way we can subtract the fixed services time from each request to get the latest time the request can initiated and still meet the deadline. This makes the model simpler because what the disk scheduler cares about is the deadline for scheduling the requests. When the system starts up, there are no disk requests pending. When the first request comes in, it is serviced immediately. While the first seek is taking place, other requests may come in, so when the first request is finished, the disk driver may have a choice of which request to process next. Some request is chosen and started. When that request is finished, there is again a set of possible requests: those that were not chosen the first time and the new arrivals that came in while the second request was being processed. In general, whenever a disk request completes, the driver has some set of requests pending from which it has to make a choice. The question is "What algorithm does it use to select the next request to service?" Two factors play a role in selecting the next disk request: deadlines and cylinders. From a performance point of view, keeping the requests sorted on cylinder and using the elevator algorithm minimizes total seek time, but may cause requests on outlying cylinders to miss their deadline. From a real-time point of view, sorting the requests on deadline and processing them in deadline order, earliest deadline first, minimizes the chance of missing deadlines, but increases total seek time. These factors can be combined using scan-edf algorithm. The basic idea of this algorithm is to collect requests whose deadlines are relatively close together into batches and process these in cylinder order. As an example, consider the situation of Figure(2-14) at t=700. The disk driver knows it has 11 requests pending for various deadline and various cylinders. It could decide, for 3

28 example to treat five requests with the earliest deadline as batch, sort them on cylinder number and use the elevator algorithm to service these in cylinder order. The order would then be 110, 330, 440, 676 and 680. As long as every request is completed before its deadline, the requests can be safely rearranged to minimize the total seek time required [2]. Order in which disk requests are processed Figure(2-14) The scan-edf algorithm uses deadlines and cylinder numbers for scheduling 4

29 As we have seen in section video on demand (VOD) and video editing are two of the most popular applications of multimedia operating systems, this of course in addition to playing multimedia files and synchronize between them. In this chapter a design of a program that demonstrates the above applications is shown. 3.1 Program specifications: Firstly, According to video on demand, it has been assumed that there are three types of files resident on the disk: a single silent movie file, multiple sound files with multiple languages, and multiple text files also with different languages. The program has to get the video file which the user wants to play, the sound language in which the user wants to hear the sound in, also it gets the text file in which the user wants to see the subtitles in. Then the program should play the video and sound files, and show the subtitles periodically one segment at a time (the segment used is a line). The most important requirement while playing these files is to synchronize between them, so that if the user scrolls forward or backward, then all files go to the correct positions, i.e. the correct frame is displayed, the correct sound should be heard and the correct text is shown. Secondly, according to video editing; the program has to let the user to input another video file and wait for the user to instruct it to replace the previous video file by the new one from the point, keeping the sound and text files as they are, and reserving the synchronization. While playing the data should be transferred to a single file. The interface is expected to be as shown in figure 3-1 Button1 Button2 Lable1 List1 Lable2 List2 Button3 Button4 Button5 Figure 3-1 program interface elements 5

30 Button1: allows the user to choose a video file. Button2: allows the user to choose another video file. List1: contains language that can be used for sound stream. List2: contains language that can be used for subtitles. Lable1 and lable2: tells the user about the contents of list1 and list2. View screen: the area where the video will be displayed. Subtitles: Where the text will be displayed. Control: control components from where the user can scroll forward and backward. 3.2 Program Design: The program is written in JAVA for two main reasons: 1. As we have seen in the previous section, that we want to work on three files concurrently and read from them at the same time, this which means in programming jargon multithreading, that means we have to use a language that support this concept. Java is unique among popular general-purpose programming language is that it makes concurrency primitives available to the applications programmer. Each thread designating a portion of a program that may execute concurrently with other threads. Multithreading gives the Java programmer powerful capabilities not available in C and C++ the languages on which Java is based [9]. In our application we have to control each file with a different thread. 2. [Java has a good support for multimedia applications, java has been built in multimedia capabilities and many languages are not, Development of powerful multimedia applications is faster.[10] A very powerful package called JMF (Java Media Framework) which contains very good functions that work on multimedia files. The following algorithms and the subsequent flowcharts illustrate the main steps that are done by the program, algorithm 1 shows that. Algorithm 2 shows the steps followed by the program if the user instructs it to switch between video movies. Algorithm 1: 1. Start. 2. Input first video file. 3. Input the second video file. 4. Choose sound stream language. 5. Get the.wav file that contains the sound in the language that specified in Input the subtitles stream language. 6

31 7. Get the.txt file contains the text in the language that specified in Check if there are current playing files. If yes: remove the visual and control components of the players and remove the subtitles. If no: go to Create player for the first video file. 10. Create player for sound file. 11. Get visual and control components of the created player in Open the txt file that got in 7 for reading. 13. Count the lines of the file opened in Determine the first video file length in seconds. total media time 15. Calculate sleep time = number of the lines 16. Let the sound player created in 10 controls the video player created in 9 to achieve the synchronization between sound and video. 17. While there is a playing movie do the following: 17.1 Get the current player time. current time 17.2 The appropriate line number = round sleep time 17.3 Open the text file Get the appropriate line and display it. 18. End. Algorithm 2 (switching between movies): If one of the buttons: "play 1st" or "play 2nd" the following algorithm is used: 1. Start. 2. Get time of the current playing player. 3. Get the video file for which the button is pressed. 4. Create player for the video that gotten in Let the sound player created in 10 in algorithm 1 controls the video player created in 4 to achieve the synchronization between sound and video. 6. Return to 17 in algorithm End. 7

32 The flowchart of algorithm 1 is shown in figure3.2 and the flowchart of algorithm 2 is shown in figure 3.3. The code is appended in the appendix. Start Input 1 st video file. Input the 2 nd video file. Choose sound stream language. Get the.wav sound file in the chosen language Get the subtitles stream language. Get the.txt file in the chosen language Check if there are current playing files YES Remove the visual and control components of the players and removes the subtitles. NO Create player for the first video file. Create player for sound file. Get visual and control components of the created player. Open the txt file for reading. A Figure(3-2) algorithm 1 flowchart 8

33 A Open the txt file for reading. Count the lines of the file opened Determine the first video file length in seconds. Calculate sleep time = total media number of time lines Synchronize between sound and video. Get the current player time. B The appropriate line number current time round sleep time Open the text file, get the appropriate line and display it Is there is a playing movie YES End NO Figure(3-2) (continued) Algorithm 1 flowchart 9

34 Start Get time of the current playing player. Get the video file for which the button is pressed. Create player for the video file Synchronize between sound and video. B End Figure(3-3) Algorithm 2 flowchart 0

35 In this chapter the screen captures of the program that discussed and designed in the previous chapter are shown. Also some discussions are demonstrated about the results and problems are faced. Figure (4-1) shows the interface of the program,"1st video" and "2nd video" buttons enabled, "play 1st", "play 2nd" and "stop" buttons are disabled. "Sound stream language" and "subtitles language" lists also are displayed. Figure (4-1) Program interface Figure (4-2) shows the files as it appear in an example folder, "video1.mpg" and "video2.mpg" are silent video files. " wav.عربي"," English.wav " and "French.wav" are audio files. " text.عربي"," English.text " and "French.text" are text files. Figure (4-2) Example files 1

36 Figure (4-3) shows the response of the program when "1st video" or "2nd video" buttons are pressed. The sub window "open" is displayed. Figure (4-3) Open window Figure (4-4) and (4-5) show the "sound stream language" and "subtitles language" lists. Figure( 4-4) Sound language lists 2

37 Figure (4-5) Subtitles language list Figure (4-6) shows a movie when it is played synchronized with sound and subtitles. Figure (4-6) A video file is playing 3

38 forward. Figure (4-7) shows the synchronization of the video, audio and subtitles after scrolling Figure (4-7) Movie after scrolling forward Figure (4-8) shows a movie with another subtitle language, at another instance of the movie. The buttons "play 1st","play 2nd" and "stop" are enabled. Figure (4-8) Movie after scrolling backward 4

39 Figure (4-9) shows the movie with another subtitles language and before pressing "play 2nd" button. Figure (4-9) First video is playing Figure (4-10) shows the program after pressing "play 2nd", it is observed that the position of the scroller, and the text are the same. Also the sound is the same. Figure (4-10) Second video is playing 5

40 Also we can return to the first movie if the second one is playing, Figure (4-11) shows an instance of the second movie, and Figure (4-12) shows the same instance in the first movie after pressing "play 1st" button. Figure (4-11) Second video is playing Figure (4-12) First video is playing 6

Chapter 7 Multimedia Operating Systems

Chapter 7 Multimedia Operating Systems MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 7 Multimedia Operating Systems Introduction To Multimedia (1) Figure 7-1. Video on demand using different local distribution technologies.

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

Process Scheduling. Copyright : University of Illinois CS 241 Staff

Process Scheduling. Copyright : University of Illinois CS 241 Staff Process Scheduling Copyright : University of Illinois CS 241 Staff 1 Process Scheduling Deciding which process/thread should occupy the resource (CPU, disk, etc) CPU I want to play Whose turn is it? Process

More information

UNIT 4 Device Management

UNIT 4 Device Management UNIT 4 Device Management (A) Device Function. (B) Device Characteristic. (C) Disk space Management. (D) Allocation and Disk scheduling Methods. [4.1] Device Management Functions The management of I/O devices

More information

Multiprocessor and Real-Time Scheduling. Chapter 10

Multiprocessor and Real-Time Scheduling. Chapter 10 Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems

More information

Computer Systems Assignment 4: Scheduling and I/O

Computer Systems Assignment 4: Scheduling and I/O Autumn Term 018 Distributed Computing Computer Systems Assignment : Scheduling and I/O Assigned on: October 19, 018 1 Scheduling The following table describes tasks to be scheduled. The table contains

More information

Main Points of the Computer Organization and System Software Module

Main Points of the Computer Organization and System Software Module Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a

More information

CPU Scheduling. CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections )

CPU Scheduling. CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections ) CPU Scheduling CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections 6.7.2 6.8) 1 Contents Why Scheduling? Basic Concepts of Scheduling Scheduling Criteria A Basic Scheduling

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 10 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Chapter 6: CPU Scheduling Basic Concepts

More information

Uniprocessor Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms. Three level scheduling

Uniprocessor Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms. Three level scheduling Uniprocessor Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Three level scheduling 2 1 Types of Scheduling 3 Long- and Medium-Term Schedulers Long-term scheduler Determines which programs

More information

Addresses in the source program are generally symbolic. A compiler will typically bind these symbolic addresses to re-locatable addresses.

Addresses in the source program are generally symbolic. A compiler will typically bind these symbolic addresses to re-locatable addresses. 1 Memory Management Address Binding The normal procedures is to select one of the processes in the input queue and to load that process into memory. As the process executed, it accesses instructions and

More information

Course Syllabus. Operating Systems

Course Syllabus. Operating Systems Course Syllabus. Introduction - History; Views; Concepts; Structure 2. Process Management - Processes; State + Resources; Threads; Unix implementation of Processes 3. Scheduling Paradigms; Unix; Modeling

More information

Department of Computer Engineering University of California at Santa Cruz. File Systems. Hai Tao

Department of Computer Engineering University of California at Santa Cruz. File Systems. Hai Tao File Systems Hai Tao File System File system is used to store sources, objects, libraries and executables, numeric data, text, video, audio, etc. The file system provide access and control function for

More information

Ch 4 : CPU scheduling

Ch 4 : CPU scheduling Ch 4 : CPU scheduling It's the basis of multiprogramming operating systems. By switching the CPU among processes, the operating system can make the computer more productive In a single-processor system,

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week 05 Lecture 18 CPU Scheduling Hello. In this lecture, we

More information

Interactive Scheduling

Interactive Scheduling Interactive Scheduling 1 Two Level Scheduling Interactive systems commonly employ two-level scheduling CPU scheduler and Memory Scheduler Memory scheduler was covered in VM We will focus on CPU scheduling

More information

Two Level Scheduling. Interactive Scheduling. Our Earlier Example. Round Robin Scheduling. Round Robin Schedule. Round Robin Schedule

Two Level Scheduling. Interactive Scheduling. Our Earlier Example. Round Robin Scheduling. Round Robin Schedule. Round Robin Schedule Two Level Scheduling Interactive Scheduling Interactive systems commonly employ two-level scheduling CPU scheduler and Memory Scheduler Memory scheduler was covered in VM We will focus on CPU scheduling

More information

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) 1/32 CPU Scheduling The scheduling problem: - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) When do we make decision? 2/32 CPU Scheduling Scheduling decisions may take

More information

CPU Scheduling: Objectives

CPU Scheduling: Objectives CPU Scheduling: Objectives CPU scheduling, the basis for multiprogrammed operating systems CPU-scheduling algorithms Evaluation criteria for selecting a CPU-scheduling algorithm for a particular system

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Input/Output Systems part 2 (ch13, ch12) Shudong Chen 1 Recap Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem

More information

Unit 3 : Process Management

Unit 3 : Process Management Unit : Process Management Processes are the most widely used units of computation in programming and systems, although object and threads are becoming more prominent in contemporary systems. Process management

More information

Learning Outcomes. Scheduling. Is scheduling important? What is Scheduling? Application Behaviour. Is scheduling important?

Learning Outcomes. Scheduling. Is scheduling important? What is Scheduling? Application Behaviour. Is scheduling important? Learning Outcomes Scheduling Understand the role of the scheduler, and how its behaviour influences the performance of the system. Know the difference between I/O-bound and CPU-bound tasks, and how they

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

OPERATING SYSTEMS CS3502 Spring Processor Scheduling. Chapter 5

OPERATING SYSTEMS CS3502 Spring Processor Scheduling. Chapter 5 OPERATING SYSTEMS CS3502 Spring 2018 Processor Scheduling Chapter 5 Goals of Processor Scheduling Scheduling is the sharing of the CPU among the processes in the ready queue The critical activities are:

More information

Operating Systems Unit 6. Memory Management

Operating Systems Unit 6. Memory Management Unit 6 Memory Management Structure 6.1 Introduction Objectives 6.2 Logical versus Physical Address Space 6.3 Swapping 6.4 Contiguous Allocation Single partition Allocation Multiple Partition Allocation

More information

COMP 3361: Operating Systems 1 Final Exam Winter 2009

COMP 3361: Operating Systems 1 Final Exam Winter 2009 COMP 3361: Operating Systems 1 Final Exam Winter 2009 Name: Instructions This is an open book exam. The exam is worth 100 points, and each question indicates how many points it is worth. Read the exam

More information

Input/Output Management

Input/Output Management Chapter 11 Input/Output Management This could be the messiest aspect of an operating system. There are just too much stuff involved, it is difficult to develop a uniform and consistent theory to cover

More information

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou (  Zhejiang University Operating Systems (Fall/Winter 2018) CPU Scheduling Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review Motivation to use threads

More information

Chapter -5 QUALITY OF SERVICE (QOS) PLATFORM DESIGN FOR REAL TIME MULTIMEDIA APPLICATIONS

Chapter -5 QUALITY OF SERVICE (QOS) PLATFORM DESIGN FOR REAL TIME MULTIMEDIA APPLICATIONS Chapter -5 QUALITY OF SERVICE (QOS) PLATFORM DESIGN FOR REAL TIME MULTIMEDIA APPLICATIONS Chapter 5 QUALITY OF SERVICE (QOS) PLATFORM DESIGN FOR REAL TIME MULTIMEDIA APPLICATIONS 5.1 Introduction For successful

More information

Multiprocessor and Real- Time Scheduling. Chapter 10

Multiprocessor and Real- Time Scheduling. Chapter 10 Multiprocessor and Real- Time Scheduling Chapter 10 Classifications of Multiprocessor Loosely coupled multiprocessor each processor has its own memory and I/O channels Functionally specialized processors

More information

Computer Science 4500 Operating Systems

Computer Science 4500 Operating Systems Computer Science 4500 Operating Systems Module 6 Process Scheduling Methods Updated: September 25, 2014 2008 Stanley A. Wileman, Jr. Operating Systems Slide 1 1 In This Module Batch and interactive workloads

More information

Chapter 20: Multimedia Systems

Chapter 20: Multimedia Systems Chapter 20: Multimedia Systems, Silberschatz, Galvin and Gagne 2009 Chapter 20: Multimedia Systems What is Multimedia? Compression Requirements of Multimedia Kernels CPU Scheduling Disk Scheduling Network

More information

Chapter 20: Multimedia Systems. Operating System Concepts 8 th Edition,

Chapter 20: Multimedia Systems. Operating System Concepts 8 th Edition, Chapter 20: Multimedia Systems, Silberschatz, Galvin and Gagne 2009 Chapter 20: Multimedia Systems What is Multimedia? Compression Requirements of Multimedia Kernels CPU Scheduling Disk Scheduling Network

More information

CS3733: Operating Systems

CS3733: Operating Systems CS3733: Operating Systems Topics: Process (CPU) Scheduling (SGG 5.1-5.3, 6.7 and web notes) Instructor: Dr. Dakai Zhu 1 Updates and Q&A Homework-02: late submission allowed until Friday!! Submit on Blackboard

More information

Operating Systems, Fall

Operating Systems, Fall Input / Output & Real-time Scheduling Chapter 5.1 5.4, Chapter 7.5 1 I/O Software Device controllers Memory-mapped mapped I/O DMA & interrupts briefly I/O Content I/O software layers and drivers Disks

More information

Multimedia Systems 2011/2012

Multimedia Systems 2011/2012 Multimedia Systems 2011/2012 System Architecture Prof. Dr. Paul Müller University of Kaiserslautern Department of Computer Science Integrated Communication Systems ICSY http://www.icsy.de Sitemap 2 Hardware

More information

LECTURE 3:CPU SCHEDULING

LECTURE 3:CPU SCHEDULING LECTURE 3:CPU SCHEDULING 1 Outline Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time CPU Scheduling Operating Systems Examples Algorithm Evaluation 2 Objectives

More information

Department of Computer applications. [Part I: Medium Answer Type Questions]

Department of Computer applications. [Part I: Medium Answer Type Questions] Department of Computer applications BBDNITM, Lucknow MCA 311: OPERATING SYSTEM [Part I: Medium Answer Type Questions] UNIT 1 Q1. What do you mean by an Operating System? What are the main functions of

More information

Disks and I/O Hakan Uraz - File Organization 1

Disks and I/O Hakan Uraz - File Organization 1 Disks and I/O 2006 Hakan Uraz - File Organization 1 Disk Drive 2006 Hakan Uraz - File Organization 2 Tracks and Sectors on Disk Surface 2006 Hakan Uraz - File Organization 3 A Set of Cylinders on Disk

More information

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) CPU Scheduling The scheduling problem: - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) When do we make decision? 1 / 31 CPU Scheduling new admitted interrupt exit terminated

More information

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU BCA-3 rd Semester 030010304-Fundamentals Of Operating Systems Unit: 1 Introduction Short Answer Questions : 1. State two ways of process communication. 2. State any two uses of operating system according

More information

CSC 553 Operating Systems

CSC 553 Operating Systems CSC 553 Operating Systems Lecture 12 - File Management Files Data collections created by users The File System is one of the most important parts of the OS to a user Desirable properties of files: Long-term

More information

Chapter 11: File System Implementation. Objectives

Chapter 11: File System Implementation. Objectives Chapter 11: File System Implementation Objectives To describe the details of implementing local file systems and directory structures To describe the implementation of remote file systems To discuss block

More information

Process size is independent of the main memory present in the system.

Process size is independent of the main memory present in the system. Hardware control structure Two characteristics are key to paging and segmentation: 1. All memory references are logical addresses within a process which are dynamically converted into physical at run time.

More information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling CSE120 Principles of Operating Systems Prof Yuanyuan (YY) Zhou Scheduling Announcement l Homework 2 due on October 26th l Project 1 due on October 27th 2 Scheduling Overview l In discussing process management

More information

Operating Systems (Classroom Practice Booklet Solutions)

Operating Systems (Classroom Practice Booklet Solutions) Operating Systems (Classroom Practice Booklet Solutions) 1. Process Management I 1. Ans: (c) 2. Ans: (c) 3. Ans: (a) Sol: Software Interrupt is generated as a result of execution of a privileged instruction.

More information

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel Chapter-6 SUBJECT:- Operating System TOPICS:- I/O Management Created by : - Sanjay Patel Disk Scheduling Algorithm 1) First-In-First-Out (FIFO) 2) Shortest Service Time First (SSTF) 3) SCAN 4) Circular-SCAN

More information

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University Frequently asked questions from the previous class survey CS 370: SYSTEM ARCHITECTURE & SOFTWARE [CPU SCHEDULING] Shrideep Pallickara Computer Science Colorado State University OpenMP compiler directives

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure System Design and Implementation System Generation 1 Common System Components Process

More information

CPU Scheduling. Daniel Mosse. (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013)

CPU Scheduling. Daniel Mosse. (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013) CPU Scheduling Daniel Mosse (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013) Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU I/O Burst Cycle Process

More information

CHAPTER 2: PROCESS MANAGEMENT

CHAPTER 2: PROCESS MANAGEMENT 1 CHAPTER 2: PROCESS MANAGEMENT Slides by: Ms. Shree Jaswal TOPICS TO BE COVERED Process description: Process, Process States, Process Control Block (PCB), Threads, Thread management. Process Scheduling:

More information

Operating Systems ECE344. Ding Yuan

Operating Systems ECE344. Ding Yuan Operating Systems ECE344 Ding Yuan Announcement & Reminder Midterm exam Will grade them this Friday Will post the solution online before next lecture Will briefly go over the common mistakes next Monday

More information

CSE 380 Computer Operating Systems

CSE 380 Computer Operating Systems CSE 380 Computer Operating Systems Instructor: Insup Lee University of Pennsylvania Fall 2003 Lecture Note on Disk I/O 1 I/O Devices Storage devices Floppy, Magnetic disk, Magnetic tape, CD-ROM, DVD User

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

8: Scheduling. Scheduling. Mark Handley

8: Scheduling. Scheduling. Mark Handley 8: Scheduling Mark Handley Scheduling On a multiprocessing system, more than one process may be available to run. The task of deciding which process to run next is called scheduling, and is performed by

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Sana a University,

More information

OPERATING SYSTEMS UNIT - 1

OPERATING SYSTEMS UNIT - 1 OPERATING SYSTEMS UNIT - 1 Syllabus UNIT I FUNDAMENTALS Introduction: Mainframe systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered Systems Real Time Systems Handheld Systems -

More information

Operating System Review Part

Operating System Review Part Operating System Review Part CMSC 602 Operating Systems Ju Wang, 2003 Fall Virginia Commonwealth University Review Outline Definition Memory Management Objective Paging Scheme Virtual Memory System and

More information

Example Sheet for Operating Systems I (Part IA)

Example Sheet for Operating Systems I (Part IA) Example Sheet for Operating Systems I (Part IA) 1. (a) Modern computers store data values in a variety of memories, each with differing size and access speeds. Briefly describe each of the following: i.

More information

Process behavior. Categories of scheduling algorithms.

Process behavior. Categories of scheduling algorithms. Week 5 When a computer is multiprogrammed, it frequently has multiple processes competing for CPU at the same time. This situation occurs whenever two or more processes are simultaneously in the ready

More information

CSE380 - Operating Systems. Communicating with Devices

CSE380 - Operating Systems. Communicating with Devices CSE380 - Operating Systems Notes for Lecture 15-11/4/04 Matt Blaze (some examples by Insup Lee) Communicating with Devices Modern architectures support convenient communication with devices memory mapped

More information

Example Sheet for Operating Systems I (Part IA)

Example Sheet for Operating Systems I (Part IA) Example Sheet for Operating Systems I (Part IA) Solutions for Supervisors Michaelmas 2018 / Last Updated: April 5, 2018 Note these may be updated in the light of feedback. (Check update time.) 1 Processes

More information

CS370 Operating Systems Midterm Review

CS370 Operating Systems Midterm Review CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between

More information

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems Processes CS 475, Spring 2018 Concurrent & Distributed Systems Review: Abstractions 2 Review: Concurrency & Parallelism 4 different things: T1 T2 T3 T4 Concurrency: (1 processor) Time T1 T2 T3 T4 T1 T1

More information

OPERATING SYSTEM. Chapter 12: File System Implementation

OPERATING SYSTEM. Chapter 12: File System Implementation OPERATING SYSTEM Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Multiprocessor scheduling

Multiprocessor scheduling Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.

More information

COMP SCI 3SH3: Operating System Concepts (Term 2 Winter 2006) Test 2 February 27, 2006; Time: 50 Minutes ;. Questions Instructor: Dr.

COMP SCI 3SH3: Operating System Concepts (Term 2 Winter 2006) Test 2 February 27, 2006; Time: 50 Minutes ;. Questions Instructor: Dr. COMP SCI 3SH3: Operating System Concepts (Term 2 Winter 2006) Test 2 February 27, 2006; Time: 50 Minutes ;. Questions Instructor: Dr. Kamran Sartipi Name: Student ID: Question 1 (Disk Block Allocation):

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 8 Scheduling Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ POSIX: Portable Operating

More information

UNIT 2. OPERATING SYSTEM STRUCTURES

UNIT 2. OPERATING SYSTEM STRUCTURES This document can be downloaded from www.chetanahegde.in with most recent updates. 1 UNIT 2. OPERATING SYSTEM STRUCTURES 2.1 INTRODUCTION An OS provides the environment within which the programs are executed.

More information

Mass-Storage Structure

Mass-Storage Structure CS 4410 Operating Systems Mass-Storage Structure Summer 2011 Cornell University 1 Today How is data saved in the hard disk? Magnetic disk Disk speed parameters Disk Scheduling RAID Structure 2 Secondary

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

CS 326: Operating Systems. CPU Scheduling. Lecture 6

CS 326: Operating Systems. CPU Scheduling. Lecture 6 CS 326: Operating Systems CPU Scheduling Lecture 6 Today s Schedule Agenda? Context Switches and Interrupts Basic Scheduling Algorithms Scheduling with I/O Symmetric multiprocessing 2/7/18 CS 326: Operating

More information

Operating Systems Unit 3

Operating Systems Unit 3 Unit 3 CPU Scheduling Algorithms Structure 3.1 Introduction Objectives 3.2 Basic Concepts of Scheduling. CPU-I/O Burst Cycle. CPU Scheduler. Preemptive/non preemptive scheduling. Dispatcher Scheduling

More information

Chapter 5: CPU Scheduling

Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating Systems Examples Algorithm Evaluation Chapter 5: CPU Scheduling

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

The levels of a memory hierarchy. Main. Memory. 500 By 1MB 4GB 500GB 0.25 ns 1ns 20ns 5ms

The levels of a memory hierarchy. Main. Memory. 500 By 1MB 4GB 500GB 0.25 ns 1ns 20ns 5ms The levels of a memory hierarchy CPU registers C A C H E Memory bus Main Memory I/O bus External memory 500 By 1MB 4GB 500GB 0.25 ns 1ns 20ns 5ms 1 1 Some useful definitions When the CPU finds a requested

More information

CSCI-GA Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke

CSCI-GA Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke CSCI-GA.2250-001 Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke frankeh@cs.nyu.edu Processes Vs Threads The unit of dispatching is referred to as a thread or lightweight

More information

Process- Concept &Process Scheduling OPERATING SYSTEMS

Process- Concept &Process Scheduling OPERATING SYSTEMS OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne PROCESS MANAGEMENT Current day computer systems allow multiple

More information

Module 1. Introduction:

Module 1. Introduction: Module 1 Introduction: Operating system is the most fundamental of all the system programs. It is a layer of software on top of the hardware which constitutes the system and manages all parts of the system.

More information

UNIT III MEMORY MANAGEMENT

UNIT III MEMORY MANAGEMENT UNIT III MEMORY MANAGEMENT TOPICS TO BE COVERED 3.1 Memory management 3.2 Contiguous allocation i Partitioned memory allocation ii Fixed & variable partitioning iii Swapping iv Relocation v Protection

More information

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara Operating Systems Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Input and Output Input/Output Devices The OS is responsible for managing I/O devices Issue requests Manage

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 2 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 2 System I/O System I/O (Chap 13) Central

More information

CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, Review

CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, Review CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, 2003 Review 1 Overview 1.1 The definition, objectives and evolution of operating system An operating system exploits and manages

More information

Module 3: Operating-System Structures

Module 3: Operating-System Structures Module 3: Operating-System Structures System Components Operating-System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation Operating

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Scheduling Mar. 19, 2018

Scheduling Mar. 19, 2018 15-410...Everything old is new again... Scheduling Mar. 19, 2018 Dave Eckhardt Brian Railing Roger Dannenberg 1 Outline Chapter 5 (or Chapter 7): Scheduling Scheduling-people/textbook terminology note

More information

Sistemi in Tempo Reale

Sistemi in Tempo Reale Laurea Specialistica in Ingegneria dell'automazione Sistemi in Tempo Reale Giuseppe Lipari Introduzione alla concorrenza Fundamentals Algorithm: It is the logical procedure to solve a certain problem It

More information

Operating Systems. Process scheduling. Thomas Ropars.

Operating Systems. Process scheduling. Thomas Ropars. 1 Operating Systems Process scheduling Thomas Ropars thomas.ropars@univ-grenoble-alpes.fr 2018 References The content of these lectures is inspired by: The lecture notes of Renaud Lachaize. The lecture

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

MARUTHI SCHOOL OF BANKING (MSB)

MARUTHI SCHOOL OF BANKING (MSB) MARUTHI SCHOOL OF BANKING (MSB) SO IT - OPERATING SYSTEM(2017) 1. is mainly responsible for allocating the resources as per process requirement? 1.RAM 2.Compiler 3.Operating Systems 4.Software 2.Which

More information

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date:

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date: Subject Name: OPERATING SYSTEMS Subject Code: 10EC65 Prepared By: Kala H S and Remya R Department: ECE Date: Unit 7 SCHEDULING TOPICS TO BE COVERED Preliminaries Non-preemptive scheduling policies Preemptive

More information

OPERATING SYSTEM. PREPARED BY : DHAVAL R. PATEL Page 1. Q.1 Explain Memory

OPERATING SYSTEM. PREPARED BY : DHAVAL R. PATEL Page 1. Q.1 Explain Memory Q.1 Explain Memory Data Storage in storage device like CD, HDD, DVD, Pen drive etc, is called memory. The device which storage data is called storage device. E.g. hard disk, floppy etc. There are two types

More information

Module 3: Operating-System Structures. Common System Components

Module 3: Operating-System Structures. Common System Components Module 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Common

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems Operating System Concepts 99h Edition DM510-14 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation

More information

Frequently asked questions from the previous class survey

Frequently asked questions from the previous class survey CS 370: OPERATING SYSTEMS [CPU SCHEDULING] Shrideep Pallickara Computer Science Colorado State University L15.1 Frequently asked questions from the previous class survey Could we record burst times in

More information

MC7204 OPERATING SYSTEMS

MC7204 OPERATING SYSTEMS MC7204 OPERATING SYSTEMS QUESTION BANK UNIT I INTRODUCTION 9 Introduction Types of operating systems operating systems structures Systems components operating systems services System calls Systems programs

More information

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information