Personal Computer Systems in Operating System
Personal Computer Systems in Operating System:
Computer hardware in the past has been very expensive. A single machine might have many users to keep costs down. This resulted in operating systems focusing mainly on efficiency and protection. It is now possible for individuals to have separate machines as the hardware has become cheaper. The operating systems for personal computers can adopt technology that was originally developed for larger operating systems.
Personal computer systems are primarily designed for a single user environment. They are not too concerned with protection because only one user accesses the machine.
Different Mainframe Systems:
Different Mainframe Systems:
Mainframe systems were used to solve commercial and scientific problems. Following is the brief description of this type of systems.
1. Simple Batch Systems:
Early computers were run from console. The card readers and tape drives were input devices. Line printers, tape drives and card punched were common output devices. The user did not interact directly with computer system. The user prepared a job that consisted of program, data and some control information (control cards). He then submitted it to the computer operator in the form of punched cards.
The operating system was simple. Its basic job was to transfer control automatically from one job to the next. The operating system was always resident in memory. The operator batched similar jobs together and then ran in the computer to speed up the processing.
The CPU is often idle in this environment as speed of I/O devices is much slower than CPU. After sometime, the introduction of disk instead of card reader resulted in faster I/O devices. In disk technology, the operating system keeps all jobs on a disk instead of card reader. The resources are utilized and jobs are performed more efficiently with the help of job scheduling. Job scheduling is possible because all jobs are present on the disk. The memory contains operating system in one part and user program in other part. The user space can contain only one process at a time in batch system. Digital Equipment's VMS is an example of a batch operating system.
2. Multi-Programmed Systems:
A group of jobs that are ready to be executed is called job pool. Since there is more than one job that can be executed, it is possible for the operating system to make a decision about which job to execute next. That decision keeps CPU utilization as high as possible.
In general, it is not possible for a single user to keep CPU or I/O devices busy at all times. Multiprogramming allows the system to increase CPU utilization by ensuring that the CPU always has a job to execute.
The CPU has a pool of jobs. When the currently executing job has to wait (if it is performing some I/O), it is removed from the CPU. Another job is selected and the CPU now executes it. This process ensures that CPU is always executing a job if there is a job to execute. In a non-multiprogrammed system, if a job had to wait for an I/O operation, CPU would also have to wait until I/O was finished.
CPU requires sophisticated data structures to implement multiprogramming. CPU must be able to decide which job is to be executed next. Some jobs will fit into memory at once. Some jobs may have to remain on disk. The operating system must be able to perform some sort of scheduling on the jobs in job pool. It determines which jobs will slay on the disk and which ones will be loaded, into memory. The operating system must have some form of memory management. Memory management is used to keep track of which jobs are stored where and how much space is available.
Sometimes, there may be many jobs that can run at any one time. The interaction between jobs must be controlled. In general, one job should not be able to manipulate the data or program code of another job.
3. Time Sharing:
In batch system, the user cannot interact with the job when it is being executed. It means that all possible problems must be anticipated beforehand as the user cannot make corrections during execution. It becomes very difficult when a program has to go through many phases such as compilation, linking etc. It may be difficult to define what to do if a particular phase fails. Another problem is the debugging of a program. All debugging is static. The only information to find out is why the program is giving incorrect output at various stages of execution.
Time sharing was introduced to make computer systems more interactive. CPU is the most important resource that is shared. Each job gets CPU for a small amount of time. When the allotted time period for a job is used, the next job in line is allocated CPU.
The switching between jobs occurs very frequently. It allows the user to interact with the job as it. is running. Operating system should enable the user to interact with jobs that are executing. The communication usually occurs via keyboard. The user gets a prompt to enter commands. The user must know the status of the job in order to enter relevant commands. The output of a job is usually presented on a monitor.
Generally, the commands given by the user take very little time to execute. The control returns to command line after finishing a command. It displays a prompt to indicate that the system is ready to execute another command- DOS and Unix are examples of such of system.
4. Time Sharing Systems:
Time sharing system is a multi-user, multi-process and interactive system. It allows multiple users to share computer simultaneously. It is used when several users are linked through communication networks to a single computer. The computer first works on one user's task for a fraction of time. It then goes to the next user's task. It is accomplished through time slicing. Each task gets a time slice in round robin fashion. The task continues until the time slice ends. The task stops when the given time slice is finished and waits for another time slice.
The computer operates very quickly and can distribute time slices to various tasks. The computer rapidly switches back and forth among different tasks. Time sharing systems use CPU scheduling and multiprogramming to provide each user with a small portion of time shared computer. The CPU can be allocated to a job only if that job is currently in memory.
A time sharing system is very complex. It is more complex than a multiprogrammed system. It must be able to have several jobs ready in memory simultaneously. It requires some form of memory management and protection. Jobs must be swapped in and out in a reasonable time. It may be achieved by using virtual memory. Virtual memory is a technique that allows the execution of a job that may not be completely in the memory. Unix, Linux, Windows NT Server and Windows 2000 Server are examples of time sharing systems.
Definition-Explanation of Operating System and Role of Operating System
Definition-Explanation of Operating System and Role of Operating System:
Definition and Explanation:
An operating system is a program that acts as an interface between the user of computer and the hardware. The purpose of an operating system is to provide an environment in which a user may execute programs.
An operating system is an important part of almost every computer system. A computer system can roughly be divided into three components:
Hardware: Hardware provides basic computing resources. It includes memory, CPU, arithmetic-logic unit, various storage devices, I/O, peripheral devices etc.
Systems Programs: System programs manage the use of hardware among various application programs for various users. System programs include operating system, compilers, editors, loaders, utilities etc,
Application Programs: Application programs define the ways in which system resources are used to solve computing problems of the users. Application programs include database systems, business programs etc.
Users: The users include people, machines and other computers.
The central processing unit (CPU) is located on chips inside system unit. CPU is the brain of computer. This is the place where computer interprets and processes information.
The operating system is the important component of the systems programs. Systems programs are directly executed on computer hardware. It enables application programmers and other users to access the power of computer fully and efficiently.
Systems programming is different from application programming. It requires deeper knowledge of computer hardware. The system programs are often large and more complex. System programs provide the foundation on which the application programs are built. So the systems programs must be reliable, efficient and correct.
Role of Operating System:
The hardware provides the basic computing resources in a computer system. The applications programs define the way in which these resources are used to solve computing problems of the users. The operating system controls and coordinates the use of the hardware among various systems programs and application programs for various users.
The role of operating system can be defined in the following ways:
1. Government:
Operating system works as a government. The basic resources of computer system are provided by its hardware, software and data. It performs no useful function on its own. It actually provides the means and the environment for proper use of its resources.
2. Resource Allocator:
A computer system has many resources. Each resource can be used to solve a problem. The operating system is responsible for managing the use of system resources. There may be many requests for a particular resource. These requests may be conflicting. The operating system decides which request should obtain the required resource. The operating system should take into consideration both system efficiency and fairness to individual requests.
3. Control Program:
An operating system is a control program that prevents errors. It ensures that the system resources are not used improperly.
There is no completely adequate definition of what is part of the operating system and what is not. Some people consider that text editors and other utility programs provided by the vendor is part of operating system. A more generally accepted definition of the operating system is that it is the program that is running at all times on the computer. This program is usually small and is commonly known to as kernel. Anything that is not part of the kernel is an application program.
The primary goal of an operating system is convenience for user. Operating systems exist because they make it easier to compute. This is particularly clear when you look at operating system for small personal computers.
A secondary goal is the efficient operation of a computer system. It is particularly important for large, shared multi-user systems. Operating systems can solve this goal. It is known that sometimes these two goals, convenience and efficiency, are contradictory.
An operating system is a group of programs designed to serve two basic purposes:
1. To control the allocation and use of the computing system's resources among the various users and tasks.
2. To provide an interface between the computer hardware and the programmer. The programmers create code, debug and maintain application programs.
An effective operating system should accomplish all of the following tasks:
- Facilitate creation and modification of program and data files through an editor program.
- Provide access to compilers to translate programs from high-level languages to machine language.
- Provide a loader program to move the complied program code to the computer's memory for execution.
- Provide routines that handle the complicated details of I/O programming
- Assure that when there are several active processes in the computer, each will get fair chance to get the CPU.
- Take care of storage and device allocation.
- Provide for long term storage of user information in the form of files.
- Permit system resources to be shared among users when appropriate, and be protected from unauthorized or mischievous intervention as necessary.
Systems programs like translators and utility programs are not usually considered part of operating system. An operating system is responsible for providing access to these system resources.
Introduction to Operating System
Introduction to Operating System:
- Definition-Explanation of Operating System and Role of Operating System
- Different Mainframe Systems
- Personal Computer Systems in Operating System
- Multiprocessor Systems
- Definition and Explanation of Distributed Systems in Operating System
- Clustered Systems in Operating System
- Real-Time Systems in Operating System
- Hand-Held Systems in Operating System
- Interrupts in Operating System
- Operating System Mode
- Operating System Components
- Role of Kernel in Operating System
- Operating System Services for Process Management
- System Calls in Operating System
Operating System
- Introduction to Operating System
- Introduction to Process Management
- Threads and CPU Scheduling
- Process Synchronization in Operating System
- Deadlocks
- Memory Management in Operating System
- Virtual Memory in Operating System
- File System Management in Operating System
- I/O and Device Management
- Security
- Linux Operating System