Video What are the three primary approaches for interacting with an operating system - Lớp.VN

[*]Kinh Nghiệm về What are the three primary approaches for interacting with an operating system Chi Tiết[*] Hoàng Thị Thanh Mai đang tìm kiếm từ khóa What are the three primary approaches for interacting with an operating system được Cập Nhật vào lúc : 2022-12-15 23:58:02 . Với phương châm chia sẻ Kinh Nghiệm về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read Post vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Admin lý giải và hướng dẫn lại nha.

Everything you do on your computer is the direct result of hardware and software working together. The hardware provides the raw power and functionality that enables the computer to work, and the operating system controls the bulk of the hardware's activity. You'd have a hard time using a computer without an operating system, as all of your hardware parts would be unable to communicate with one another.

Nội dung chính Show
    Memory ManagementCPU ControlFans and CoolingWhat are the 3 basic components of an operating system?What are the ways to interact with an operating system?What are approaches in operating system?What are 3 different operating systems that can be used for a server?

[*]Drivers[*]

In order for the operating system to talk to your hardware, it needs drivers. Drivers teach the operating system to interact with each bit of hardware. Graphics cards, sound cards, networking cards, USB peripherals, and everything else you connect to your computer relies on drivers. The operating system then uses these drivers to ensure correct operation of each device.

Memory Management[*]

All computers have random access memory, or RAM. Unlike hard drive storage, which is relatively permanent, RAM is what remembers everything you're doing in the moment. If you have a browser, photo editor, music program, and messaging application open, all of your progress and the status of each are stored in the RAM. The operating system works with your RAM sticks to control how much memory is used by each application, including the OS itself.

CPU Control[*]

Your computer's processes are executed by its central processing unit, or CPU. Signals sent to and from the CPU determine what happens, and in what order. The operating system works with the CPU to create a checklist of processes to execute and ensures that each gets done. A CPU can only perform one task a time; because CPUs are so incredibly fast, it gives the illusion of many simultaneous tasks. The operating system controls the priority of each task and sees them through to completion.

Fans and Cooling[*]

One of the most important components of your computer is its cooling system. The CPU fan keeps the CPU from overheating in moments of high stress. Overheating can cause permanent damage to a CPU. The operating system communicates with both the CPU and the fan to help ensure the PC stays cool. This process is also assisted by the motherboard's internal controls, known as the BIOS, and can be overwritten by applications running in the OS.

Each computer system includes a basic set of programs called the operating system. The most important program in the set is called the kernel. It is loaded into RAM when the system boots and contains many critical procedures that are needed for the system to operate. The other programs are less crucial utilities; they can provide a wide variety of interactive experiences for the user—as well as doing all the jobs the user bought the computer for—but the essential shape and capabilities of the system are determined by the kernel. The kernel provides key facilities to everything else on the system and determines many of the characteristics of higher software. Hence, we often use the term “operating system” as a synonym for “kernel.”

The operating system must fulfill two main objectives:

    Interact with the hardware components, servicing all low-level programmable elements included in the hardware platform.

    Provide an execution environment to the applications that run on the computer system (the so-called user programs).

Some operating systems allow all user programs to directly play with the hardware components (a typical example is MS-DOS ). In contrast, a Unix-like operating system hides all low-level details concerning the physical organization of the computer from applications run by the user. When a program wants to use a hardware resource, it must issue a request to the operating system. The kernel evaluates the request and, if it chooses to grant the resource, interacts with the proper hardware components on behalf of the user program.

To enforce this mechanism, modern operating systems rely on the availability of specific hardware features that forbid user programs to directly interact with low-level hardware components or to access arbitrary memory locations. In particular, the hardware introduces least two different execution modes for the CPU: a nonprivileged mode for user programs and a privileged mode for the kernel. Unix calls these User Mode and Kernel Mode , respectively.

In the rest of this chapter, we introduce the basic concepts that have motivated the design of Unix over the past two decades, as well as Linux and other operating systems. While the concepts are probably familiar to you as a Linux user, these sections try to delve into them a bit more deeply than usual to explain the requirements they place on an operating system kernel. These broad considerations refer to virtually all Unix-like systems. The other chapters of this book will hopefully help you understand the Linux kernel internals.

A multiuser system is a computer that is able to concurrently and independently execute several applications belonging to two or more users. Concurrently means that applications can be active the same time and contend for the various resources such as CPU, memory, hard disks, and so on. Independently means that each application can perform its task with no concern for what the applications of the other users are doing. Switching from one application to another, of course, slows down each of them and affects the response time seen by the users. Many of the complexities of modern operating system kernels, which we will examine in this book, are present to minimize the delays enforced on each program and to provide the user with responses that are as fast as possible.

Multiuser operating systems must include several features:

    An authentication mechanism for verifying the user’s identity

    A protection mechanism against buggy user programs that could block other applications running in the system

    A protection mechanism against malicious user programs that could interfere with or spy on the activity of other users

    An accounting mechanism that limits the amount of resource units assigned to each user

To ensure safe protection mechanisms, operating systems must use the hardware protection associated with the CPU privileged mode. Otherwise, a user program would be able to directly access the system circuitry and overcome the imposed bounds. Unix is a multiuser system that enforces the hardware protection of system resources.

In a multiuser system, each user has a private space on the machine; typically, he owns some quota of the disk space to store files, receives private mail messages, and so on. The operating system must ensure that the private portion of a user space is visible only to its owner. In particular, it must ensure that no user can exploit a system application for the purpose of violating the private space of another user.

All users are identified by a unique number called the User ID, or UID. Usually only a restricted number of persons are allowed to make use of a computer system. When one of these users starts a working session, the system asks for a login name and a password. If the user does not input a valid pair, the system denies access. Because the password is assumed to be secret, the user’s privacy is ensured.

To selectively share material with other users, each user is a thành viên of one or more user groups , which are identified by a unique number called a user group ID . Each file is associated with exactly one group. For example, access can be set so the user owning the file has read and write privileges, the group has read-only privileges, and other users on the system are denied access to the file.

Any Unix-like operating system has a special user called root or superuser . The system administrator must log in as root to handle user accounts, perform maintenance tasks such as system backups and program upgrades, and so on. The root user can do almost everything, because the operating system does not apply the usual protection mechanisms to her. In particular, the root user can access every file on the system and can manipulate every running user program.

All operating systems use one fundamental abstraction: the process. A process can be defined either as “an instance of a program in execution” or as the “execution context” of a running program. In traditional operating systems, a process executes a single sequence of instructions in an address space; the address space is the set of memory addresses that the process is allowed to reference. Modern operating systems allow processes with multiple execution flows — that is, multiple sequences of instructions executed in the same address space.

Multiuser systems must enforce an execution environment in which several processes can be active concurrently and contend for system resources, mainly the CPU. Systems that allow concurrent active processes are said to be multiprogramming or multiprocessing .[*] It is important to distinguish programs from processes; several processes can execute the same program concurrently, while the same process can execute several programs sequentially.

On uniprocessor systems, just one process can hold the CPU, and hence just one execution flow can progress a time. In general, the number of CPUs is always restricted, and therefore only a few processes can progress once. An operating system component called the scheduler chooses the process that can progress. Some operating systems allow only nonpreemptable processes, which means that the scheduler is invoked only when a process voluntarily relinquishes the CPU. But processes of a multiuser system must be preemptable; the operating system tracks how long each process holds the CPU and periodically activates the scheduler.

Unix is a multiprocessing operating system with preemptable processes . Even when no user is logged in and no application is running, several system processes monitor the peripheral devices. In particular, several processes listen the system terminals waiting for user logins. When a user inputs a login name, the listening process runs a program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered. When a graphical display is activated, one process runs the window manager, and each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process runs the shell into which the user can enter the commands. For each user command, the shell process creates another process that executes the corresponding program.

Unix-like operating systems adopt a process/kernel model . Each process has the illusion that it’s the only process on the machine, and it has exclusive access to the operating system services. Whenever a process makes a system call (i.e., a request to the kernel, see Chapter 10), the hardware changes the privilege mode from User Mode to Kernel Mode, and the process starts the execution of a kernel procedure with a strictly limited purpose. In this way, the operating system acts within the execution context of the process in order to satisfy its request. Whenever the request is fully satisfied, the kernel procedure forces the hardware to return to User Mode and the process continues its execution from the instruction following the system call.

As stated before, most Unix kernels are monolithic: each kernel layer is integrated into the whole kernel program and runs in Kernel Mode on behalf of the current process. In contrast, microkernel operating systems demand a very small set of functions from the kernel, generally including a few synchronization primitives, a simple scheduler, and an interprocess communication mechanism. Several system processes that run on top of the microkernel implement other operating system-layer functions, like memory allocators, device drivers, and system call handlers.

Although academic research on operating systems is oriented toward microkernels , such operating systems are generally slower than monolithic ones, because the explicit message passing between the different layers of the operating system has a cost. However, microkernel operating systems might have some theoretical advantages over monolithic ones. Microkernels force the system programmers to adopt a modularized approach, because each operating system layer is a relatively independent program that must interact with the other layers through well-defined and clean software interfaces. Moreover, an existing microkernel operating system can be easily ported to other architectures fairly easily, because all hardware-dependent components are generally encapsulated in the microkernel code. Finally, microkernel operating systems tend to make better use of random access memory (RAM) than monolithic ones, because system processes that aren’t implementing needed functionalities might be swapped out or destroyed.

To achieve many of the theoretical advantages of microkernels without introducing performance penalties, the Linux kernel offers modules . A module is an object file whose code can be linked to (and unlinked from) the kernel runtime. The object code usually consists of a set of functions that implements a filesystem, a device driver, or other features the kernel’s upper layer. The module, unlike the external layers of microkernel operating systems, does not run as a specific process. Instead, it is executed in Kernel Mode on behalf of the current process, like any other statically linked kernel function.

The main advantages of using modules include:

modularized approach

Because any module can be linked and unlinked runtime, system programmers must introduce well-defined software interfaces to access the data structures handled by modules. This makes it easy to develop new modules.

Platform independence

Even if it may rely on some specific hardware features, a module doesn’t depend on a fixed hardware platform. For example, a disk driver module that relies on the SCSI standard works as well on an IBM-compatible PC as it does on Hewlett-Packard’s Alpha.

Frugal main memory usage

A module can be linked to the running kernel when its functionality is required and unlinked when it is no longer useful; this is quite useful for small embedded systems.

No performance penalty

Once linked in, the object code of a module is equivalent to the object code of the statically linked kernel. Therefore, no explicit message passing is required when the functions of the module are invoked.[*]

What are the 3 basic components of an operating system?

An operating system consists of the following components: Management of processes. File Administration. Network Management.

What are the ways to interact with an operating system?

Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI, with icons and windows, etc. A command-line interface for running processes and scripts, browsing files in directories, etc.

What are approaches in operating system?

Design Approaches of Operating System: Layered, Kernel based and Virtual machine approach.

What are 3 different operating systems that can be used for a server?

Using server hardware sales data, IDC reports that 28% of servers run Linux compared to 50% of servers running Windows. Other popular server operating systems include Unix and z/OS. Tải thêm tài liệu liên quan đến nội dung bài viết What are the three primary approaches for interacting with an operating system

Clip What are the three primary approaches for interacting with an operating system ?

Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Review What are the three primary approaches for interacting with an operating system tiên tiến nhất

Share Link Cập nhật What are the three primary approaches for interacting with an operating system miễn phí

You đang tìm một số trong những ShareLink Download What are the three primary approaches for interacting with an operating system Free.

Giải đáp thắc mắc về What are the three primary approaches for interacting with an operating system

Nếu sau khi đọc nội dung bài viết What are the three primary approaches for interacting with an operating system vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha #primary #approaches #interacting #operating #system - 2022-12-15 23:58:02
Post a Comment (0)
Previous Post Next Post