Chapter 3: Operating-System Structures. Common System Components



Similar documents
Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Operating System Components

Common Operating-System Components

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Chapter 3 Operating-System Structures

System Structures. Services Interface Structure

Operating System Structures

Operating system Dr. Shroouq J.

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Chapter 2 System Structures

Operating System Structures

Example of Standard API

Overview of Operating Systems Instructor: Dr. Tongping Liu

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

OPERATING SYSTEMS STRUCTURES

Operating Systems 4 th Class

CS3600 SYSTEMS AND NETWORKS

CS420: Operating Systems OS Services & System Calls

Operating Systems OS Architecture Models

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Operating Systems PART -A

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

OPERATING SYSTEM SERVICES

Introduction. What is an Operating System?

Components of a Computer System

ELEC 377. Operating Systems. Week 1 Class 3

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Lecture 1 Operating System Overview

CHAPTER 15: Operating Systems: An Overview

OS Concepts and structure

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Chapter 2: OS Overview

Chapter 3. Operating Systems

Types Of Operating Systems

Computer Organisation Operating Systems

Chapter 1: Introduction. What is an Operating System?

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Operating System Organization. Purpose of an OS


UNISOL SysAdmin. SysAdmin helps systems administrators manage their UNIX systems and networks more effectively.

CPS221 Lecture: Operating System Structure; Virtual Machines

Operating System Overview. Otto J. Anshus

Lesson 06: Basics of Software Development (W02D2

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Principles of Operating Systems CS 446/646

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Computers: Tools for an Information Age

Operating System Tutorial

Operating System Components and Services

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

OPERATING SYSTEMS Software in the Background. Chapter 2

Restraining Execution Environments

Contents. Chapter 1. Introduction

How To Understand The History Of An Operating System

Chapter 11 I/O Management and Disk Scheduling

INTRODUCTION TO OPERATING SYSTEMS

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

Chapter 1: Introduction. Chapter 1: Introduction. Operating System Concepts, 7th Edition. Objectives

Java and Real Time Storage Applications

Unit 4 Objectives. System Software. Component 4: Introduction to Information and Computer Science. Unit 4: Application and System Software Lecture 2

Computer Engineering

Chapter 1 Fundamentals of Java Programming

Software: Systems and Application Software

Chapter 5: System Software: Operating Systems and Utility Programs

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Operating Systems. Rafael Ramirez (T, S)

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Chapter 4. System Software. What You Will Learn... Computers Are Your Future. System Software. What You Will Learn... Starting the Computer

3 SOFTWARE AND PROGRAMMING LANGUAGES

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Configuring Apache Derby for Performance and Durability Olav Sandstå

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Overview and History of Operating Systems

UEFI on Dell BizClient Platforms

Operating Systems Overview

Operating System Structure

Chapter 14 Virtual Machines

Operating- System Structures

The PC Boot Process - Windows XP.

Filing Systems. Filing Systems

SYSTEM ecos Embedded Configurable Operating System

ECE 677: Distributed Computing Systems. Distributed Operating Systems: Design Issues Case Studies

Chapter 10 Case Study 1: LINUX

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Operating Systems: Basic Concepts and History

Raid storage. Raid 0: Striping. Raid 1: Mirrored

Virtual Machine Security

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

EUCIP IT Administrator - Module 2 Operating Systems Syllabus Version 3.0

Enabling Technologies for Distributed Computing

Multi-core Programming System Overview

Transcription:

Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Common System Components Process Management Main Memory Management File Management I/O System Management Secondary Management Networking Protection System Command-Interpreter System 3.2

Process Management A process is a program in execution. A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. The operating system is responsible for the following activities in connection with process management. Process creation and deletion. process suspension and resumption. Provision of mechanisms for: process synchronization process communication 3.3 Main-Memory Management Memory is a large array of words or bytes, each with its own address. It is a repository of quickly accessible data shared by the CPU and I/O devices. Main memory is a volatile storage device. It loses its contents in the case of system failure. The operating system is responsible for the following activities in connections with memory management: Keep track of which parts of memory are currently being used and by whom. Decide which processes to load when memory space becomes available. Allocate and deallocate memory space as needed. 3.4

File Management A file is a collection of related information defined by its creator. Commonly, files represent programs (both source and object forms) and data. The operating system is responsible for the following activities in connections with file management: File creation and deletion. Directory creation and deletion. Support of primitives for manipulating files and directories. Mapping files onto secondary storage. File backup on stable (nonvolatile) storage media. 3.5 I/O System Management The I/O system consists of: A buffer-caching system A general device-driver interface Drivers for specific hardware devices 3.6

Secondary-Storage Management Since main memory (primary storage) is volatile and too small to accommodate all data and programs permanently, the computer system must provide secondary storage to back up main memory. Most modern computer systems use disks as the principle on-line storage medium, for both programs and data. The operating system is responsible for the following activities in connection with disk management: Free space management Storage allocation Disk scheduling 3.7 Networking (Distributed Systems) A distributed system is a collection processors that do not share memory or a clock. Each processor has its own local memory. The processors in the system are connected through a communication network. Communication takes place using a protocol. A distributed system provides user access to various system resources. Access to a shared resource allows: Computation speed-up Increased data availability Enhanced reliability 3.8

Protection System Protection refers to a mechanism for controlling access by programs, processes, or users to both system and user resources. The protection mechanism must: distinguish between authorized and unauthorized usage. specify the controls to be imposed. provide a means of enforcement. 3.9 Command-Interpreter System Many commands are given to the operating system by control statements which deal with: process creation and management I/O handling secondary-storage management main-memory management file-system access protection networking 3.10

Command-Interpreter System (Cont.) The program that reads and interprets control statements is called variously: command-line interpreter shell (in UNIX) Its function is to get and execute the next command statement. 3.11 Operating System Services Program execution system capability to load a program into memory and to run it. I/O operations since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O. File-system manipulation program capability to read, write, create, and delete files. Communications exchange of information between processes executing either on the same computer or on different systems tied together by a network. Implemented via shared memory or message passing. Error detection ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs. 3.12

Additional Operating System Functions Additional functions exist not for helping the user, but rather for ensuring efficient system operations. Resource allocation allocating resources to multiple users or multiple jobs running at the same time. Accounting keep track of and record which users use how much and what kinds of computer resources for account billing or for accumulating usage statistics. Protection ensuring that all access to system resources is controlled. 3.13 System Calls System calls provide the interface between a running program and the operating system. Generally available as assembly-language instructions. Languages defined to replace assembly language for systems programming allow system calls to be made directly (e.g., C, C++) Three general methods are used to pass parameters between a running program and the operating system. Pass parameters in registers. Store the parameters in a table in memory, and the table address is passed as a parameter in a register. Push (store) the parameters onto the stack by the program, and pop off the stack by operating system. 3.14

Passing of Parameters As A Table 3.15 Types of System Calls Process control File management Device management Information maintenance Communications 3.16

MS-DOS Execution At System Start-up Running a Program 3.17 UNIX Running Multiple Programs 3.18

Communication Models Communication may take place using either message passing or shared memory. Msg Passing Shared Memory 3.19 System Programs System programs provide a convenient environment for program development and execution. The can be divided into: File manipulation Status information File modification Programming language support Program loading and execution Communications Application programs Most users view of the operation system is defined by system programs, not the actual system calls. 3.20

MS-DOS System Structure MS-DOS written to provide the most functionality in the least space not divided into modules Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated 3.21 MS-DOS Layer Structure 3.22

UNIX System Structure UNIX limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts. Systems programs The kernel Consists of everything below the system-call interface and above the physical hardware Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level. 3.23 UNIX System Structure 3.24

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. 3.25 An Operating System Layer 3.26

OS/2 Layer Structure 3.27 Microkernel System Structure Moves as much from the kernel into user space. Communication takes place between user modules using message passing. Benefits: - easier to extend a microkernel - easier to port the operating system to new architectures - more reliable (less code is running in kernel mode) - more secure 3.28

Windows NT Client-Server Structure 3.29 Virtual Machines A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware. A virtual machine provides an interface identical to the underlying bare hardware. The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory. 3.30

Virtual Machines (Cont.) The resources of the physical computer are shared to create the virtual machines. CPU scheduling can create the appearance that users have their own processor. Spooling and a file system can provide virtual card readers and virtual line printers. A normal user time-sharing terminal serves as the virtual machine operator s console. 3.31 System Models Non-virtual Machine Virtual Machine 3.32

Advantages/Disadvantages of Virtual Machines The virtual-machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources. A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine. 3.33 Java Virtual Machine Compiled Java programs are platform-neutral bytecodes executed by a Java Virtual Machine (JVM). JVM consists of - class loader - class verifier - runtime interpreter Just-In-Time (JIT) compilers increase performance 3.34

Java Virtual Machine 3.35 System Design Goals User goals operating system should be convenient to use, easy to learn, reliable, safe, and fast. System goals operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient. 3.36

Mechanisms and Policies 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. 3.37 System Implementation Traditionally written in assembly language, operating systems can now be written in higher-level languages. Code written in a high-level language: can be written faster. is more compact. is easier to understand and debug. An operating system is far easier to port (move to some other hardware) if it is written in a high-level language. 3.38

System Generation (SYSGEN) Operating systems are designed to run on any of a class of machines; the system must be configured for each specific computer site. SYSGEN program obtains information concerning the specific configuration of the hardware system. Booting starting a computer by loading the kernel. Bootstrap program code stored in ROM that is able to locate the kernel, load it into memory, and start its execution. 3.39