Computer Operating System - Chapter 2: Operating-System Structures

Operating System Services
■ User and Operating System Interface
■ System Calls
■ System Services
■ Linkers and Loaders
■ Why Applications are Operating System Specific
■ Operating-System Design and Implementation
■ Operating System Structure
■ Building and Booting an Operating System
■ Operating System Debugging 
pdf 64 trang xuanthi 30/12/2022 860
Bạn đang xem 20 trang mẫu của tài liệu "Computer Operating System - Chapter 2: Operating-System Structures", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfcomputer_operating_system_chapter_2_operating_system_structu.pdf

Nội dung text: Computer Operating System - Chapter 2: Operating-System Structures

  1. Chapter 2:Outline ■ Operating System Services ■ User and Operating System Interface ■ System Calls ■ System Services ■ Linkers and Loaders ■ Why Applications are Operating System Specific ■ Operating-System Design and Implementation ■ Operating System Structure ■ Building and Booting an Operating System ■ Operating System Debugging Operating System Concepts 2 Silberschatz, Galvin and Gagne ©2018
  2. Operating System Services ■ Operating systems provide an environment for execution of programs and services to programs and users ■ A set of operating-system services provides functions that are helpful to the user: ● User interface - Almost all operating systems have a user interface (UI). 4 Varies between Command-Line Interface (CLI), Graphical User Interface (GUI), Touch-screen ● Program execution - The system must be able to load a program into memory, to run that program, and end execution, either normally or abnormally (indicating error) ● I/O operations - A running program may require I/O, which may involve a file or an I/O device Operating System Concepts 4 Silberschatz, Galvin and Gagne ©2018
  3. Operating System Services (Cont.) ■ Another set of OS functions exists for ensuring the efficient operation of the system itself via resource sharing ● Resource allocation - When multiple users or multiple jobs running concurrently, resources must be allocated to each of them 4 Many types of resources - CPU cycles, main memory, file storage, I/O devices. ● Logging - To keep track of which users use how much and what kinds of computer resources ● Protection and security - The owners of information stored in a multiuser or networked computer system may want to control use of that information, concurrent processes should not interfere with each other 4 Protection involves ensuring that all access to system resources is controlled 4 Security of the system from outsiders requires user authentication, extends to defending external I/O devices from invalid access attempts Operating System Concepts 6 Silberschatz, Galvin and Gagne ©2018
  4. User Operating System Interface - CLI ■ CLI or command interpreter allows direct command entry ● Sometimes implemented in kernel, sometimes by system programs ● Sometimes multiple flavors implemented – shells ● Primarily fetches a command from user and executes it ● Sometimes commands built-in, sometimes just names of programs 4 If the latter, adding new features doesn’t require shell modification Operating System Concepts 8 Silberschatz, Galvin and Gagne ©2018
  5. User Operating System Interface - GUI ■ User-friendly desktop metaphor interface ● Usually mouse, keyboard, and monitor ● Icons represent files, programs, actions, etc. ● Various mouse buttons over objects in the interface cause various actions providing information, options, execute function, open directory ● Invented at Xerox PARC ■ Many systems now include both CLI and GUI interfaces ● Microsoft Windows is GUI with CLI “command” shell ● Apple Mac OS X is “Aqua” GUI interface with UNIX kernel underneath and shells available ● Unix and Linux have CLI with optional GUI interfaces (e.g., CDE, KDE, GNOME) Operating System Concepts 10 Silberschatz, Galvin and Gagne ©2018
  6. The Mac OS X GUI Operating System Concepts 12 Silberschatz, Galvin and Gagne ©2018
  7. Example of System Calls ■ System call sequence to copy the contents of one file to another file Operating System Concepts 14 Silberschatz, Galvin and Gagne ©2018
  8. System Call Implementation ■ Typically, a number associated with each system call ● System-call interface maintains a table indexed according to these numbers ■ The system call interface invokes the intended system call in OS kernel and returns status of the system call and any return values ■ The caller need know nothing about how the system call is implemented ● Just needs to obey API and understand what OS will do as a result call ● Most details of OS interface are hidden from programmer by API 4 Managed by run-time support library (set of functions built into libraries included with compiler) Operating System Concepts 16 Silberschatz, Galvin and Gagne ©2018
  9. System Call Parameter Passing ■ Often, more information is required than simply identity of desired system call ● Exact type and amount of information vary according to OS and call ■ Three general methods used to pass parameters to the OS ● Simplest: pass the parameters in registers 4 In some cases, may be more parameters than registers ● Parameters stored in a block, or table, in memory, and address of block passed as a parameter in a register 4 This approach taken by Linux and Solaris ● Parameters placed, or pushed, onto the stack (see Memory structure) by the program and popped off the stack by the operating system 4 Block and stack methods do not limit the number or length of parameters being passed Operating System Concepts 18 Silberschatz, Galvin and Gagne ©2018
  10. Types of System Calls ■ Process control ● create process, terminate process ● end, abort process execution ● load, execute ● get process attributes, set process attributes ● wait for time, wait event, signal event ● allocate and free memory ● dump memory if error ● debugger for determining bugs, single step execution ● Locks for managing access to shared data between processes Operating System Concepts 20 Silberschatz, Galvin and Gagne ©2018
  11. Types of System Calls (Cont.) ■ Information maintenance ● get time or date, set time or date ● get system data, set system data ● get and set process, file, or device attributes ■ Communications ● create, delete communication connection ● send, receive messages if using message passing model to host name or process name ● Shared-memory model create and gain access to memory regions ● transfer status information ● attach and detach remote devices Operating System Concepts 22 Silberschatz, Galvin and Gagne ©2018
  12. Examples of Windows and Unix System Calls Operating System Concepts 24 Silberschatz, Galvin and Gagne ©2018
  13. Example: Arduino ■ Single-tasking ■ No operating system ■ Programs (sketch) loaded via USB into flash memory ■ Single memory space ■ Boot loader loads program ■ Program exit ⇢ shell reloaded At system startup running a program Operating System Concepts 26 Silberschatz, Galvin and Gagne ©2018
  14. System Services ■ System programs provide a convenient environment for program development and execution. They can be divided into: ● File manipulation ● Status information sometimes stored in a file ● Programming language support ● Program loading and execution ● Communications ● Background services ● Application programs ■ Most users’view of the operation system is defined by system programs, not the actual system calls Operating System Concepts 28 Silberschatz, Galvin and Gagne ©2018
  15. System Services (Cont.) ■ File modification ● Text editors to create and modify files ● Special commands to search contents of files or perform transformations of the text ■ Programming-language support - Compilers, assemblers, debuggers and interpreters are sometimes provided ■ Program loading and execution - Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for higher-level and machine language ■ Communications - Provide the mechanism for creating virtual connections among processes, users, and computer systems ● Allow users to send messages to one another’s screens, browse web pages, send electronic-mail messages, log in remotely, transfer files from one machine to another Operating System Concepts 30 Silberschatz, Galvin and Gagne ©2018
  16. Linkers and Loaders ■ Source code compiled into object files designed to be loaded into any physical memory location – relocatable object file ■ Linker combines these (also, brings in libraries) into single binary executable file ■ Program resides on secondary storage as binary executable and must be brought into memory by loader to be executed ● Relocation assigns final addresses to program parts and adjusts code and data in program to match those addresses ■ Modern general purpose systems don’t link libraries into executables ● Rather, dynamically linked libraries (in Windows, DLLs) are loaded as needed, shared by all that use the same version of that same library ■ Object, executable files have standard formats, so operating system knows how to load and start them Operating System Concepts 32 Silberschatz, Galvin and Gagne ©2018
  17. Why Applications are Operating System Specific ■ Apps compiled on one system usually not executable on other operating systems ■ Each operating system provides its own unique system calls, own file formats, etc. ■ Apps can be multi-operating system ● Written in interpreted language like Python, Ruby, and interpreter available on multiple operating systems ● App written in language that includes a VM containing the running app ● Use standard language (like C), compile separately on each operating system to run on each ■ Application Binary Interface (ABI) is an architecture equivalent of API, defines how different components of binary code can interface for a given operating system on a given architecture, CPU, etc. Operating System Concepts 34 Silberschatz, Galvin and Gagne ©2018
  18. Operating System Design and Implementation (Cont.) ■ Important principle to separate Policy: What will be done? Mechanism: How to do it? ■ Mechanisms determine how to do something, policies decide what will be done ■ The separation of policy from mechanism is a very important principle, it allows maximum flexibility if policy decisions are to be changed later (e.g., timer) ■ Specifying and designing an OS is highly creative task of software engineering Operating System Concepts 36 Silberschatz, Galvin and Gagne ©2018
  19. Operating System Structure ■ General-purpose OS is very large program ■ Various ways to structure ones ● Simple structure – MS-DOS ● More complex – UNIX ● Layered – an abstraction ● Microkernel – Mach Operating System Concepts 38 Silberschatz, Galvin and Gagne ©2018
  20. Traditional UNIX System Structure ■ Beyond simple but not fully layered Operating System Concepts 40 Silberschatz, Galvin and Gagne ©2018
  21. Layered Approach ■ The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface. ■ With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers Operating System Concepts 42 Silberschatz, Galvin and Gagne ©2018
  22. Microkernel System Structure Operating System Concepts 44 Silberschatz, Galvin and Gagne ©2018
  23. Hybrid Systems ■ Most modern operating systems are actually not one pure model ● Hybrid combines multiple approaches to address performance, security, usability needs ● Linux and Solaris kernels in kernel address space, so monolithic, plus modular for dynamic loading of functionality ● Windows mostly monolithic, plus microkernel for different subsystem personalities ■ Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa programming environment ● Below is kernel consisting of Mach microkernel and BSD Unix parts, plus I/O kit and dynamically loadable modules (called kernel extensions) Operating System Concepts 46 Silberschatz, Galvin and Gagne ©2018
  24. Darwin Operating System Concepts 48 Silberschatz, Galvin and Gagne ©2018
  25. Android ■ Developed by Open Handset Alliance (mostly Google), open source ■ Similar stack to iOS ■ Based on Linux kernel but modified ● Provides process, memory, device-driver management ● Adds power management ■ Runtime environment includes core set of libraries and Dalvik virtual machine ● Apps developed in Java plus Android API 4 Java class files compiled to Java bytecode then translated to executable than runs in Dalvik VM ■ Libraries include frameworks for web browser (webkit), database (SQLite), multimedia, smaller libc Operating System Concepts 50 Silberschatz, Galvin and Gagne ©2018
  26. Building and Booting an Operating System ■ Operating systems generally designed to run on a class of systems with variety of peripherals ■ Commonly, operating system already installed on purchased computer ● But can build and install some other operating systems ● If generating an operating system from scratch 4 Write the operating system source code 4 Configure the operating system for the system on which it will run 4 Compile the operating system 4 Install the operating system 4 Boot the computer and its new operating system Operating System Concepts 52 Silberschatz, Galvin and Gagne ©2018
  27. System Boot ■ When power on system, execution starts at a fixed memory location ■ Operating system must be made available to hardware so hardware can start it 4 Small piece of code – bootstrap loader, BIOS, stored in ROM or EEPROM locates the kernel, loads it into memory, and starts it 4 Sometimes two-step process where boot block at fixed location loaded by ROM code, which loads bootstrap loader from disk 4 Modern systems replace BIOS with Unified Extensible Firmware Interface (UEFI) ■ Common bootstrap loader, GRUB, allows selection of kernel from multiple disks, versions, kernel options ■ Kernel loads and system is then running ■ Boot loaders frequently allow various boot states Operating System Concepts 54 Silberschatz, Galvin and Gagne ©2018
  28. Performance Tuning ■ Improve performance by removing bottlenecks ■ OS must provide means of computing and displaying measures of system behavior ■ For example, “top” program or Windows Task Manager Operating System Concepts 56 Silberschatz, Galvin and Gagne ©2018
  29. BCC ■ Debugging interactions between user-level and kernel code nearly impossible without toolset that understands both and an instrument their actions ■ BPF Compiler Collection (BCC) is a rich toolkit providing tracing features for Linux ● See also the original DTrace ■ For example, disksnoop.py traces disk I/O activity ■ Many other tools (next slide) Operating System Concepts 58 Silberschatz, Galvin and Gagne ©2018
  30. Summary ■ An operating system provides an environment for the execution of programs by providing services to users and programs. ■ The three primary approaches for interacting with an operating system are (1) command interpreters, (2) graphical user interfaces, and (3) touch-screen interfaces. ■ System calls provide an interface to the services made available by an operating system. Programmers use a system call’s application programming interface (API) for accessing system-call services. ■ System calls can be divided into six major categories: (1) process control, (2) file management, (3) device management, (4) information maintenance, (5) communications, and (6) protection. ■ The standard C library provides the system-call interface for UNIX and Linux systems. Operating System Concepts 60 Silberschatz, Galvin and Gagne ©2018
  31. Summary (Cont.) ■ A monolithic operating system has no structure; all functionality is provided in a single, static binary file that runs in a single address space. Although such systems are difficult to modify, their primary benefit is efficiency. ■ A layered operating system is divided into a number of discrete layers, where the bottom layer is the hardware interface and the highest layer is the user interface. ■ Although layered software systems have had some success, this approach is generally not ideal for designing operating systems due to performance problems. ■ The microkernel approach for designing operating systems uses a minimal kernel; most services run as user-level applications. Communication takes place via message passing. Operating System Concepts 62 Silberschatz, Galvin and Gagne ©2018
  32. End of Chapter 2 Operating System Concepts Silberschatz, Galvin and Gagne ©2018