Chap 1

  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Chap 1 as PDF for free.

More details

  • Words: 5,849
  • Pages: 17
1

MSN

OPERATING SYSTEM COURSE CODE : CE- 458 CHAPTER – 1 INTRODUCTION WEIGHTAGE:

20

A Computer system can be divided into four components: - The Hardware - The Operating System - The Application Programs - The Users User 1

compiler

User 2

assembler

User 3

text editor

User n

database system

system and application programs Operating system Computer hardware

Components of Computer system •

• • •

The hardware of computer system includes the Central Processing unit, (CPU), the memory, and the input/output (I/O) devices. They are the basic resources. The application programs includes compilers, database system, games, and business programs. They define the way in which the hardware resources are to be used to solve the computing problems of the users. There are many different users trying to solve different problems using different application programs. The operating system controls and coordinates the use of the hardware among the various application programs for the various users.

1.1. What is an Operating System? -

-

The operating system controls and coordinates the use of the hardware among the various application programs for the various users. An operating system acts as government; it provides the means for the proper use of resources. The operating system provides an environment within which other programs can do useful work. Operating system acts as a resource allocator. A computer system has many resources like CPU time, memory space, file storage space, I/O devices etc. The operating system acts as manager of these resources and allocates them to specific programs and users as necessary for tasks efficiently. -----------------------Nobody is perfect in this world-----------------------

2

-

An operating system is a control program. It controls the execution of user programs to prevent errors and improper use of the computer. The Primary goal of operating system is convenience for the user. The operating system makes the use of system easier. The secondary goal of operating system is efficient operation of the computer system.

Leading PC Operating Systems Windows XP 32-bit. Developed for IBM PS/2. Multitasking; Networking Palm OS Paired-down for handheld computers, wireless communication devices Windows CE 32-bit operating system; Multitasking; Multiprocessing; Networking; Internet services Windows 2000 32-bit operating system; GUI; Multitasking; Networking capabilities Windows 98 95 & ME For IBM PCs; supports 32-bit computing; Multitasking; Networking OS/2 For older IBM and IBM compatible PCs. Program Memory limited to 640KB DOS For Macintosh computers; Multitasking; Networking; Powerful multimedia capabilities Mac OS Free, reliable alternative to Unix & Windows. Runs on many platforms; open source code Linux For powerful PCs, workstations, midrange computers. Multitasking; Multi-user Processing; Networking. Portable to various computer hardware platforms Multiprocessing Allows computer to execute two or more instructions simultaneously in a single computer system by using multiple CPUs (1) Computer system’s ability to support more than one process (program) at the same time. Multiprocessing operating systems enable several programs run concurrently. UNIX is one of the most widely used multiprocessing systems, but there are many others, including OS/2 for high-end PCs. Multiprocessing systems are much more complicated than singleprocess systems because the operating system must allocate resources to competing processes in a reasonable manner. (2) The utilization of multiple CPUs in a single computer system. This is also called parallel processing.

-----------------------Nobody is perfect in this world-----------------------

3

1.2. Types of Operating System 1.2.1. Batch Operating System - Early computers were large machines having input devices like card readers and tape drives and output devices like line printers, tape drives and card punches. - The users of such system did not interact directly with the computer system, the user prepare job consisting of – data, program and control information about the job and use to submit it to computer operator. - The operating system fairly simple it’s major task was to transfer control automatically from one job to next. The operating system was always (resident) in memory. Operating system

User Program Area

Memory layout of batch system -

-

-

-

Operators used to batch up jobs with similar needs into a group to speed up the processing. The operators use to batch up the jobs submitted to him. A batch operating system, reads a stream of separate jobs, each with its own control cards that predefine what job does. When job is completed the result is printed. The batch system has no interaction between the user and the job while the job is executing. The job is prepared and submitted, and some time later the output appears. The delay between job submission and job completion is called turnaround time. The CPU is often idle. This idleness occurs because the speed of the mechanical I/O devices is slower than electronic devices. After the introduction of disk technology, the cards are read into disk from card reader. The location of card images is recorded in a table kept by the operating system. When job is executed, the operating system provides input. When job is completed, the output is actually printed. This form of processing is called spooling (Simultaneous Peripheral Operation on-line). Spooling uses the disk as a huge buffer for reading as far ahead as possible on input devices and for storing output files until the output devices are able to accept them.

1.2.2. Multiprogramming Operating System Multiprogramming increases CPU utilization by organizing jobs so that the CPU always has one job to execute.

-----------------------Nobody is perfect in this world-----------------------

4

-

-

The operating system keeps several jobs in memory simultaneously. This set of jobs is a subset of the jobs kept in the job pool- the number of jobs that can be kept simultaneously in memory is usually much smaller than the number of jobs that can be in the job pool. Operating system picks and begins to execute one of the jobs in memory and the other job may have to wait for some task, such as I/O operation. Operating system Job 1 Job 2 Job 3 Job 4 Memory layout for a multiprogramming system

-

-

-

In multiprogramming system, the operating system simply switches to, and executes another job. When that job needs to wait, the CPU is switched to another job. Eventually, the first job finishes waiting and gets CPU back. As long as at least one job needs to execute, the CPU is never idle. In multiprogramming operating system all the jobs that enter the system are kept in the pool. This pool consists of all processes residing on disk awaiting allocation of main memory. If several jobs are ready to be brought into memory, and if there is no enough room for all of them the system must choose among them. When the operating system selects a job from the job pool, it loads that job into main memory is called Job scheduling, If several jobs are ready to run at the same time, the system must choose among them, this decision is called CPU scheduling.

1.2.3.

Network Operating System

Unlike operating systems, such as DOS and Windows95, those are designed for single users to control one computer, network operating systems (NOS) coordinate the activities of multiple computers across a network. The network operating system acts as a director to keep the network running smoothly. The two major types of network operating systems are: • Peer-to-Peer • Client/Server Peer-to-Peer Peer-to-peer network operating systems allow users to share resources and files located on their computers and to access shared resources found on other computers. However, they do not have a file server or a centralized management source (See fig. 1). In a peer-to-peer network, all computers are considered equal; they all have the same abilities to use the resources available on the network. Peer-to-peer networks are designed primarily for small

-----------------------Nobody is perfect in this world-----------------------

5

to medium local area networks. AppleShare and Windows for Workgroups are examples of programs that can function as peer-to-peer network operating systems.

Fig.1. Peer-to-peer network Advantages of a peer-to-peer network: • •

Less initial expense - No need for a dedicated server. Setup - An operating system (such as Windows 95) already in place may only need to be reconfigured for peer-to-peer operations.

Disadvantages of a peer-to-peer network: • •

Decentralized - No central repository for files and applications. Security - Does not provide the security available on a client/server network.

Client/Server Client/server network operating systems allow the network to centralize functions and applications in one or more dedicated file servers (See fig. 2). The file servers become the heart of the system, providing access to resources and providing security. Individual workstations (clients) have access to the resources available on the file servers. The network operating system provides the mechanism to integrate all the components of the network and allow multiple users to simultaneously share the same resources irrespective of physical location. Novell Netware and Windows NT Server are examples of client/server network operating systems.

Fig.2. Client/server network

-----------------------Nobody is perfect in this world-----------------------

6

Advantages of a client/server network: • • • • •

Centralized - Resources and data security are controlled through the server. Scalability - Any or all elements can be replaced individually as needs increase. Flexibility - New technology can be easily integrated into system. Interoperability - All components (client/network/server) work together. Accessibility - Server can be accessed remotely and across multiple platforms.

Disadvantages of a client/server network: • • •

Expense - Requires initial investment in dedicated server. Maintenance - Large networks will require a staff to ensure efficient operation. Dependence - When server goes down, operations will cease across the network.

Examples of network operating systems The following list includes some of the more popular peer-to-peer and client/server network operating systems. • Microsoft Windows 95 / 98 • Microsoft Windows NT Server • Microsoft Windows NT Work Station 1.2.4.

Multitasking Operating System

The ability to execute more than one task at the same time, a task being a program is called multitasking. - The terms multitasking and multiprocessing are often used interchangeably, although multiprocessing implies that more than one CPU is involved. - In multitasking, only one CPU is involved, but it switches from one program to another so quickly that it gives the appearance of executing all of the programs at the same time. - A time-shared operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of a time-shared computer. Each user has at least one separate program in memory. A program in execution is called process. - A time-sharing operating system must have memory management and protection. - Time-sharing system must also provide a file system. - There are two basic types of multitasking: preemptive and cooperative. - In preemptive multitasking, the operating system parcels out CPU time slices to each program. - In cooperative multitasking, each program can control the CPU for as long as it needs it. If a program is not using the CPU, however, it can allow another program to use it temporarily. Examples - OS/2, Windows 95, Windows NT, the Amiga operating system and UNIX use preemptive multitasking, whereas Microsoft Windows 3.x and the MultiFinder (for Macintosh computers) use cooperative multitasking. -

-

1.2.5.

Multithreading Operating System

-----------------------Nobody is perfect in this world-----------------------

7

-

-

-

-

A thread also called a lightweight process (LWP) is a basic unit of CPU utilization; it comprises a thread ID, a program counter, a register set, and a stack. It shares with other threads belonging to the same process its code section, data section and other operating system resources. Process is a heavyweight process has a single thread of control. If the process has multiple threads of control, it can do more than one task at a time. Advantages of multithreaded programming 1. Responsiveness - Multithreading an interactive application may allow a program to continue running even if part of it is blocked or is performing lengthy operation, thereby increasing responsiveness to the user. 2. Resources sharing Threads share the memory and resources of the process to which they belong. The benefit of code sharing is that it allows an application to have several different threads of activity all within the same address space. 3. Economy: Allocating memory and resources for process creation is costly. Threads share resources of the process to which they belong, it is more economical to create and context switch threads. 4. Utilization of multiprocessor architecture Multithreading can be greatly increased in a multiprocessor architecture, where each thread may be running in parallel on a multiprocessor. A single-threaded process can only run on one CPU, no matter how many are available. Multithreading on a multi-CPU machine increases concurrency.

Q: How does it work? A: The Operating System has a scheduler for each thread (process) that is currently running. It divides up time slices for each of them, which are executed in the order that the Operating System seems fit. It simply runs each one in some arbitrary order for a set number of milliseconds and then switches between them constantly Q: Is it fast? A: The more processes that your program has running, the more time that your program can get from the system. But this isn't the best way to think about it. The switches from one thread to another (or from one process to another) happens so quickly that the entire system seems to be doing many different things at once! In reality, (unless you have multiple processors), every instruction is still executed sequentially. Operating System developers implemented a system for you that are easy to use and can give the appearance

of true parallelism

-

User Threads They are supported above the kernel and are implemented by a thread library at the user level.

-----------------------Nobody is perfect in this world-----------------------

8

The library provides support for thread creation, scheduling, and management with no support from the kernel. Kernel is unaware of user-level threads; all thread creation and scheduling is done in the user space so they are fast to create and manage. User-thread libraries include POSIX Pthreads, Mach Cthreads and Solaris UI-threads. -

Kernel Threads Kernel threads are supported by Operating system: the kernel performs thread creation, scheduling and management in kernel space. Kernel threads are slower to create and manage. Windows NT, Windows 2000, Solaris 2, BeOS, and Tru64 UNIX support kernel threads.

1.2.6. Distributed Operating System - A distributed computer system is a collection of autonomous computer systems capable of communication and cooperation via their hardware and software interconnections. - Historically, distributed operating system evolved from computer networks in which a number of largely independent hosts are connected by communication links and protocols. - A distributed operating system governs the operation of a distributed computer system and provides a virtual machine abstraction to its users. - The key objective of distributed operating system is transparency. - Components and resource distribution should be hidden from users and application programs unless they explicitly demand. - Distributed operating system usually provides the means for system-wide sharing of resources, such as computational capacity, files, and I/O devices. - Distributed operating system also may facilitate access to remote resources, communication with remote processes and distribution of computations along with services at each node like other operating system. - The added services necessary for pooling of shared system resources include global naming, distributed file system, and facilitate for distribution of computations, such as internode process communication and remote procedure calls. 1.2.7. Combination Operating System - Different operating systems are optimized or at least largely geared towards serving the needs of specific environments because the given environment may not exactly match the operating system. - For E.g. both interactive program development and lengthy simulations are often encountered in university computing centers, so some operating systems provide a combination of services. For example, a time-sharing system may support interactive users and also incorporate a full-fledged batch monitor. This allows computationally intensive noninteractive programs to be run concurrently with interactive programs. The common practice is to assign low priority to batch jobs and thus execute batched

-----------------------Nobody is perfect in this world-----------------------

9

-

programs only when the processor would be idle. Batch may be used as filler to improve processor utilization while accomplishing a useful service of its own. Some time-critical events, such as receipt and transmission of network data packets may be handled in real-time fashion on system that otherwise provides time-sharing services to their terminals.

1.3. Operating System Structure As modern operating systems are large and complex careful engineering is required. There are four different structures that have shown in this document in order to get some idea of the spectrum of possibilities. These are by no mean s exhaustive, but they give an idea of some designs that have been tried in practice. Monolithic Systems: This approach well known as “The Big Mess”. The structure is that there is no structure. The operating system is written as a collection of procedures, each of which can call any of the other ones whenever it needs to. When this technique is used, each procedure in the system has a well-defined interface in terms of parameters and results, and each one is free to call any other one, if the latter provides some useful computation that the former needs. For constructing the actual object program of the operating system when this approach is used, one compiles all the individual procedures, or files containing the procedures and then binds them all together into a single object file with the linker. In terms of information hiding, there is essentially none- every procedure is visible to every other one i.e. opposed to a structure containing modules or packages, in which much of the information is local to module, and only officially designated entry points can be called from outside the module. However, even in Monolithic systems, it is possible to have at least a little structure. The services like system calls provide by the operating system are requested by putting the parameters in well-defined places, such as in registers or on the stack, and then executing a special trap instruction known as a kernel call or supervisor call. 1.3.1. Layer Structure Approach - Operating system is broken up into a number of layers (levels); each built on top of lower layers. The bottom layer (layer 0) is the hardware; the highest (layer N0 is the user interface. - An operating-system layer is an implementation of an abstract object that is encapsulation of data, and of a set of routines that can be invoked by higherlevel layers. - An advantage of the layer approach is modularity. The layers are selected such that each uses functions (operations) and services of only lower-level layers. This approach simplifies debugging and system verification. - Each layer is implemented with only those operations provided by lower-level layers. A layer does not need to know how these operations are implemented; it needs to know only what these operations do. Each layer hides the existence of certain data structures, operations, and hardware from higher-level layers. - The major difficulty with the layered approach involves the careful definition of the layers, because a layer can use only those layers below it.

-----------------------Nobody is perfect in this world-----------------------

10

-

E.g. the device driver for the disk space used by virtual-memory algorithms must be at a level lower than that of the memory-management routines, because memory management require the ability to use the disk space. Layered implementations tend to be less efficient than other types. E.g. When a user programs executes an I/O operation, it executes a system call that is trapped to the I/O layer, which calls the memory-management layer, which in turn calls the CPU-scheduling layer, which is then passed to the hardware. At each layer, the parameters may be modified; data may need to be passed. Each layer adds overhead to the system call; the net result is a system call that takes longer than does one on a nonlayered system.

-

MS-DOS layered structure

-

MS-DOS is originally designed and implemented to provide the most functionality in the least space ( because of limited hardware on which it ran), so it was not divided into modules carefully.

-

Application program Resident system program MS-DOS device drivers ROM BIOS device drivers

-

MS-DOS layered structure UNIX layered structure The UNIX layered structure consist of two parts : 1) The Kernel 2) the System programs The kernel is again separated into a series of interfaces and device drivers, which were added and expanded later. (the users) Shells and commands Compilers and interpreters System libraries System-call interface to the kernel

Signals terminal Handling Character I/O system Terminal drivers

File system Swapping block I/O system Disk and tape drivers

CPU scheduling Page replacement Demand paging Virtual memory

Kernel interface to the hardware

-----------------------Nobody is perfect in this world-----------------------

11

Terminal controllers Terminals

Device controllers Disks and tapes

Memory controllers Physical memory

UNIX Layered Structure -

-

Everything below the system-call interface and above the physical hardware is the kernel. The kernel provides the file system, CPU scheduling, memory management, and other operating system functions through system calls. System calls define the API (Application program Interface) to UNIX; the set of system programs commonly available defines the user interface. The programmer and user interfaces define the context that the kernel must support.

1.3.2.

-

-

-

-

Kernel Approach

In the mid-1980, researchers at Carnegie Mellon University developed an operating system called Mach that modularizes the kernel using the microkernel approach. This method structures the operating system by removing all the nonessential components from the kernel, and implementing them s system and user-level programs. Microkernels are small in size and provides minimal process and memory management, in addition to a communication facility. The main function of the microkernel is to provide a communication facility between the client programs and the various services that are also running in user space. Communication is provided by message passing. For e.g. if the client program wishes to access a file, it must interact with the file server. The client program and the service never interact directly. They communicate indirectly by exchanging messages with microkernel. It is easy to extend the microkernel operating system. All new services are added to user space and do not require the modification of the kernel. When the kernel does have to be modified, the changes tend to be fewer, because the microkernel is a smaller kernel. The microkernel operating system is easier to port from one hardware design to another. The microkernel also provides more security and reliability, since most services are running at the user space. If service fails, the rest of the operating system remains untouched. Advantages of Microkernel approach It is easy to extend the microkernel operating system. All new services are added to user space and do not require the modification of the kernel. When the kernel does have to be modified, the changes tend to be fewer, because the microkernel is a smaller kernel. The microkernel operating system is easier to port from one hardware design to another.

-----------------------Nobody is perfect in this world-----------------------

12

The microkernel also provides more security and reliability, since most services are running at the user space. -

Example UTru64 UNIX provides the UNIX interface to the user, but it is implemented with a microkernel. The Apple MacOS X server operating system is based on the microkernel .The QNX is a real-time operating system that is also based on microkernel design.

1.3.3.

Virtual Machine The VM operating system for IBM systems is the best example of the virtual-machine concept. CPU scheduling and virtual-memory techniques help the operating system to create the illusion that a process has its own processor with its own (virtual) memory. Normally the process has additional features, such as system calls and file system, that are not provided by bare hardware. The virtualmachine approach, does not provide any additional functionality, but rather provides an interface that is identical to the underlying bare hardware. Each process is provided with a (virtual) copy of the underlying hardware. Physical computer share resources to create the virtual machines. CPU scheduling can share out the CPU to create the appearance that users have their own processors. Processes Processes Processes Processes

kernel

kernel VM1

kernel VM2

kernel VM3

Virtual machine implementation Hardware hardware System Models : a) Non virtual machine

b) Virtual Machine

The heart of the system, known as the virtual machine monitor, runs on the bare hardware and does the multiprogramming, providing not one, but several virtual machines to the next layer up. These virtual machines are not extended machines, with files and other nice features. Instead, they are exact copies of the bare hardware, including kernel/user mod, I/O, interrupts, and everything else the real machine has.

-----------------------Nobody is perfect in this world-----------------------

13

For reason of Each virtual machine is identical to the true hardware, each one can run any operating system that will run directly on the hardware. Different virtual machines can, and usually do, run different operating systems. Major difficulty with Virtual-machine involves disk systems. Suppose the physical machine has three disk drives but want to support seven virtual machines. It cannot allocate a disk drive to each virtual machine. The virtual-machine software itself will need substantial disk space to provide virtual memory. The solution is to provide virtual disks, which is identical in all respects except sizes – termed minidisks. The system implements each minidisk by allocating as many tracks on the physical disk as the minidisk needs. The sum of sizes of all minidisks must be smaller than that of the physical disk space.

-

Advantages of Virtual-Machine The virtual machines provide a robust level of security, by completely protecting system resources. The virtual machine allows system development to be done without disrupting normal operation. Disadvantages of Virtual-Machine - In virtual machines there is no direct sharing of resources. Examples - The recent Linux operating system have virtual-machine that allow Windows applications to run on Linux-based computers. - Java run on a virtual machine, thereby allowing a Java program to run on any computer system that has a Java virtual machine. -

1.3.4. Client-Server Model - A trend in modern operating systems is to take this idea of moving code up into higher layers even further, and remove as much as possible from the operating system, leaving a minimal kernel. - The usual approach is to implement most of the operating system functions in user processes. - To request a service, such as reading a block of a file, a user process ( presently known as the client process) sends the request to a server process, which then does the work and sends back the answer. - In client-Server Model, all the kernel does is handle the communication between clients and servers. By splitting the operating system up into parts, each of which only handles one fact of the system, such as file service, process service, Terminal service, or memory service, each part becomes small and manageable. - All the servers run as user-mode processes, and not in kernel mode, they do not have direct access to the hardware. As a consequence, if a bug in the file server is triggered, the file service may crash, but this will not usually bring the whole machine down. - Client-server model can be used in distributed system. If a client communicates with a server by sending it messages, the client need not know whether the

-----------------------Nobody is perfect in this world-----------------------

14

-

-

message is handled locally in its own machine, or whether it was sent across a network to a server on a remote machine. As far as the client is concerned, the same thing happens in both cases: a request was sent and a reply came back Example Windows NT is designed to run various applications, including Win32 (native Windows applications), OS/2, and POSIX. It provides a server that runs in user space for each application type. Client programs for each application type also run in user space. The kernel coordinates the message passing between the client applications and the application servers.

The Client-server structure of Windows NT Win32

applicatio n

Win32

Server

OS/2 application

POSIX application

OS/2 server

POSIX server

kernel 1.4. Operating System Services The operating system provides an environment for the execution of programs. The operating system provides services to programs and to the users of those programs The operating system services are provided for the convenience of the programmer.. 1.4.1. Types of Services • Program execution : The system must be able to load a program into memory and run it. The program must be able to end its execution either normally or abnormally (indicating error). • I/O operations: A running program may require I/O. This I/O involve a file or an I/O device. For specific devices, special functions may be desired. For efficiency and protection, users usually cannot control I/O devices directly. The operating system provides a means to do I/O. • File-system manipulation: The programs need to read and write files and programs must also create and delete files. The operating system maintains the file system. • Communications: In many conditions the process needs to exchange information with another process. Such communication can occur in two ways:

-----------------------Nobody is perfect in this world-----------------------

15

The first takes place between processes that are executing on the same computer. The second takes place between processes that are executing on different computer systems that are tied together by a network. Communications may be implemented via shared memory, or via message passing, in which the information is moved between processes by operating system. • Error detection: The operating system constantly needs to be aware of possible errors. Errors may occur in the CPU and memory hardware, in I/O devices and in user programs. For each type of error, the operating system should take the proper action to ensure correct and consistent computing. Operating a system function that exists not for helping the user, but rather ensuring the efficient operation of the system.



Resource allocation: Operating system manages many resources like CPU cycles, main memory, and file storage. Resources are allocated to multiple users. Some resources have special allocation code, whereas others may have general request and release code. For eg. in determining how best to use the CPU, the operating system have CPU- scheduling routines that takes account the speed of the CPU, the jobs that must be executed, the number of registers. • Accounting: The tracking of which user use how many and which kind of computer resources can be used for billing or simply accumulating usage statistics. Usage statistics may be a valuable tool for researchers who wish to reconfigure the system to improve computing services. • Protection: Protection involves ensuring that all access to system resources is controlled. 1.4.2. •

The User View and Operating System View Operating system can be explored from two viewpoints: the user view and system view. User View - The user view of the computer varies by the interface being used. - Single user system PC consisting of monitor, keyboard, mouse, and system unit are designed to be used by single person. The operating system is designed mostly for ease of use, with some attention paid on performance, and none paid to resource utilization. Performance is important to the user, but it does not matter if the most of the system is sitting idle, waiting for the slow I/O speed of the user. - User connected to Mainframe or Minicomputer Many user are connected to mainframe or minicomputer through terminal to access to share the resources and exchange information

-----------------------Nobody is perfect in this world-----------------------

16

The operating system is designed to maximize resource utilization – to assure that all available user takes more than fair share. User on Workstations User at workstation, connected to networks of other workstations and servers have dedicated resources at their disposal, but they also share the resource such as networking and servers – file, compute and print servers. The operating system is designed to compromise between individual usability and resource utilization. Handheld computers These devices are mostly standalone, used singly by individual users. Some are connected to networks, either directly by wire or through wireless modems. Due to power and interface limitation they perform relatively few remote operations. The operating systems are designed mostly for individual usability, but performance per amount of battery life is important. Embedded computers Embedded computers in home devices and automobiles may have a numeric keypad, and may turn indicator lights on or off to show status, but mostly they and their operating system are designed to run without user intervention.

-

-

-

-



System View - From computer’s view the operating system is the program that is most intimate with hardware. - The operating system is a resource allocator. The operating system acts as manager or resources – hardware and software- required solve a problem includes CPU time, memory space, file-storage, I/O devices etc. - A slightly different view of operating system is as control program. A control program manages the execution of user programs to prevent errors and improper use of the computer. It is especially concerned with the operation and control of I/O devices. - The fundamental goal of operating system is to execute user programs and to make solving user problems easier.

 Real Time Operating System - A real–time operating system is used where there are rigid time requirements on -

the operation of a processor or the flow of data, and thus is often used as a control device in a dedicated application. Systems that control scientific experiments, medical imaging systems, industrial control systems, and some displays, automobile-engine fuel-injection systems are real-time systems. A real-time operating system has well-defined, fixed time constraints. Processing must be done within the defined constraints, or the system will fail. A real-time operating system is considered to function correctly only if it returns the correct result within any time constraints.

-----------------------Nobody is perfect in this world-----------------------

17

-

There are two flavors of real-time systems : 1. Hard real-time system : A hard real-time system guarantees that critical tasks complete on time. This goal requires that all delays in the system be bounded, from the retrieval of stored data to the time that takes the operating system to finish any request made of it. Secondary storage of any sort is usually limited or missing, with data being stored in short-term memory or in read-only memory (ROM). Most advanced operating system features such as virtual memory is not found in real-time system.

2. Soft real-time system: A less restrictive type of real-time operating system is a soft real-time system, where a critical real-time task gets priority over other tasks, and retains that priority until it completes. Soft real-time system have more limited utility that hard real-time system. They are risky if used for industrial control and robotics because of their lack of deadline support. They are useful in multimedia, virtual reality, and advanced scientific projects such as undersea exploration and planetary rovers.

-----------------------Nobody is perfect in this world-----------------------

Related Documents

Chap 1
December 2019 8
Chap 1
June 2020 9
Chap 1
November 2019 16
Chap 1
November 2019 9
Chap 1
August 2019 20
Chap 1
April 2020 6