System Models. (A) Non-Virtual Machine. (B) Virtual Machine

Play multiple recording slots on a physical disk as small disks when needed. Obviously, the total size of all small disks is smaller than the size of the available physical disk space.


processes

kernel

hardware

Maybe you are interested!

processes


processes


processes

kernel

kernel

kernel

VM1

VM2

VM3

Virtual machine implementation

hardware

Programming interface


Figure 1.11 System models. (a) Non-virtual machine. (b) virtual machine

Thus, users are given their own virtual machine. They can then run any operating system or software package available on the underlying hardware. For IBM VM systems, a user typically runs a CMS - a single-user interface operating system. The virtual machine software is concerned with multiple multiprogrammed virtual machines on a single physical machine but does not need to consider any user support software. This arrangement can provide a useful division into two smaller parts of the problem of designing a multiuser interface system.

1.2.6 System installation and design

Although the concept of a virtual machine is useful, it is difficult to implement. Much work is required to provide an exact replica of the underlying machine. The underlying machine has two modes: user mode and control mode. Virtual machine software can run in control mode because it is an operating system. The virtual machine itself can execute only in user mode. However, only when a physical machine has two modes is it a virtual machine. Therefore, we must have a virtual user mode and a virtual control mode. Both run in physical user mode. Operations that cause a switch from user mode to control mode on a real machine (such as a system call or

An attempt to execute a privileged instruction must also cause a transition from virtual user mode to virtual control mode on a virtual machine.

There are two main advantages to using virtual machines. First, by completely protecting system resources, virtual machines provide a high level of security. Second, virtual machines allow system development to be performed without disrupting normal system operations.

Each virtual machine is completely isolated from other virtual machines, so we do not encounter any security problems as other system resources are completely protected. For example, untrusted applications downloaded from the Internet can be run in a separate virtual machine. A disadvantage of this environment is that there is no direct sharing of resources. Two approaches to providing sharing are implemented. First, a small disk can be shared. This mechanism is modeled after a physically shared disk. Second, a network of virtual machines can be defined, each virtual machine can send information over these communication networks but it is implemented in software.

Such virtual machine systems are a useful medium for operating system research and development. Normally, changing an operating system is a difficult task. Because operating systems are large and complex programs, a change in one part can cause an incomprehensible error in another part. The power of the operating system makes this situation extremely dangerous. Because the operating system operates in a controlled mode, a wrong change in a pointer can cause an error and possibly destroy the entire file system. Therefore, all operating system changes must be carefully tested.

However, the operating system runs on the machine and has complete control over it. Therefore, the current system must be stopped and taken out of use while changes are made and tested. This time is often called system development time. Because it makes the system unavailable to users, system development time is often scheduled in the evenings or on weekends, when system load is low.

A virtual machine system can eliminate many of these problems. The system programmer is provided with his own virtual machine, and system development is done on the virtual machine instead of on the actual physical machine. A conventional operating system is less likely to break.

broken down due to system development. Despite these advantages, very few improvements on this technique have been made recently.

Chapter 1 questions and exercises

1. Describe the concept of system resources, giving illustrative examples.

2. State the basic functions of the operating system

3. Describe the relationship between the operating system and the components in the system, thereby stating the concept of the operating system.

4. Distinguish between single-tasking and multi-tasking operating systems, giving examples through DOS and Windows operating systems

5. Using known operating systems, give illustrative examples to reveal the properties of the operating system.

6. Compare the protection mechanisms of Windows 9x, Windows 2000 and Windows XP operating systems

7. List system programs and application programs in DOS and Windows operating systems.

8. List the components of an operating system, giving examples from specific operating systems.

9. What is a system call, ways to pass parameters to a system call

10. What is a virtual machine? Why do we need a virtual machine? Shows virtual machines that have been installed and used in practice

Chapter 2: PROCESS MANAGEMENT

2.1 Progress

A single-tasking computer system allows only one program to be executed at a time. This program has complete control over the system and has access to all of the system's resources. The multitasking systems commonly used in computers today allow multiple programs to be loaded into memory and executed simultaneously, requiring more complex control and greater division between processes.

A multitasking operating system will have to execute many user programs at the same time, and must also take care of the user's operations with the system such as data input and output, data exchange between processes, etc. Therefore, a multitasking system will contain a set of processes: the operating system process executes system code, the user process executes user code. All of these processes can be coordinated to execute simultaneously by one or more CPUs. By switching the CPU between processes, a multitasking operating system can make the computer operate at higher performance.

2.1.1 Process concept

In a multitasking operating system, a user can run multiple programs at a time: a word processor, a web browser, e-mail, etc. Even if the user only executes one process at a time, a multitasking operating system still needs system processes to support internal operations such as memory management, data input/output management, etc.

1) Process

A process is a program in execution. A process is not only the program, but also includes the current activity such as the value of the program counter, the contents of the processor registers, the process stack to hold temporary data during the process execution (such as method parameters, return addresses, local variables), and the data section containing global variables.

A program is a passive entity, like the contents of files stored on disk, whereas a process is an active entity, with a program counter that determines the next instruction to execute and the associated resource set.

Although two processes may be associated with the same program, they contain two separate execution sequences. For example, multiple users may be running copies of a mail program, or the same user may load multiple copies of a word processing program. Each of these copies is a separate process, and although the text is the same, the data is different. In addition, a process can spawn multiple other processes as it executes.

2) Process status

As a process executes, it changes state. The state of a process is defined by the current activities of that process. Each process can be in one of the following states:

- New (new): the process is being created

- Running: instructions are being executed

- Waiting: the process is waiting for an event to occur (such as completing input/output or receiving a signal)

- Ready: the process is waiting to be assigned a handle.

- Terminated: the process of completing the implementation



terminated

new

admit

dispatch

exit

ready

running

interrupt

I/O or event completion

I/O or event wait

waiting


Figure 2.1 Process state flowchart

3) Process control block

Each process is managed in the operating system by a Process Control Block (PCB). A PCB is shown in (Figure 2.2). It contains several fields of information associated with a particular process, including:



book.

Figure 2.2 Process control block

- Process pointer: contains pointer to link PCBs into list


- Process state : the state can be new, ready, in progress

run, wait, finish, …

- Program counter : the counter displays the address of the next instruction to be executed for this process.

- Registers : Registers vary in number and type, depending on the computer architecture. They include accumulators, index registers, stack pointers, general-purpose registers, and condition-code information. Along with the program counter, this status information must be saved when an interrupt occurs, allowing the process to save the location of the instruction to be executed next (Figure 2.3).

- CPU scheduling information : information including process priorities, pointers to scheduling queues, and other scheduling parameters.

- Memory management information : this information may include information such as the values ​​of base and limit registers, page tables or segment tables, depending on the memory system organized by the operating system.

- Accounting information : this information includes the amount of CPU and real time used, jobs or number of processes, ...

- I/O status information : this information includes a list of input/output devices allocated to this process, a list of open files, ...


The PCB simply serves as a repository for various information as the CPU switches from one process to another.

Figure 2.3 Flowchart of switching CPU from one process to another

2.1.2 Process scheduling

The goal of multiprogramming is to have multiple processes running at a time to maximize CPU utilization. The goal of scheduling is to switch the CPU between processes frequently so that the user can interact with each program while the programs are running. A system with a single processor can only run one process at a time, if more than one process exists, the remaining processes must wait until the CPU is free to execute, hence the need for CPU scheduling.

1) Scheduling queue

As processes enter the system, they are placed in a queue. The queue contains all the processes in the system. The processes that are in main memory ready and waiting to be executed are kept in a list called the ready queue. This queue is usually stored as a linked list. The head of the ready queue contains two pointers: one to the first PCB and one to the last PCB in the list. We add to each PCB a pointer field that points to the next PCB in the ready queue.

The operating system also has other queues. When a process is allocated a CPU, it executes for a period of time and eventually terminates, is interrupted, or waits for a specific event to occur such as the completion of an I/O request. In the case of an I/O request, a request could be a tape drive or a disk drive. Since the system has many processes, the disk may be busy with I/O requests from other processes. Therefore, the process must wait for the disk. The list of processes waiting for a particular I/O device is called the device queue. Each device has its own queue (Figure 2.4).

Figure 2.4 Ready queue and different input/output queues

Comment


Agree Privacy Policy *