1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State.

Slides:



Advertisements
Similar presentations
1 Processes and Threads Creation and Termination States Usage Implementations.
Advertisements

More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Operating Systems COMP 4850/CISG 5550 Processes Introduction to Threads Dr. James Money.
Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
The Process Model.
Thursday, June 08, 2006 The number of UNIX installations has grown to 10, with more expected. The UNIX Programmer's Manual, 2nd Edition, June, 1972.
Processes CSCI 444/544 Operating Systems Fall 2008.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
Jonathan Walpole Computer Science Portland State University
Page 1 Processes and Threads Chapter 2. Page 2 Processes The Process Model Multiprogramming of four programs Conceptual model of 4 independent, sequential.
Page 1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
Introduction to Operating Systems – Windows process and thread management In this lecture we will cover Threads and processes in Windows Thread priority.
1 What is a Process ? The activity of program execution. Also called a task or job Has associated with it: Code Data Resources A State An executing set.
CSCE 351: Operating System Kernels
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Process in Unix, Linux and Windows CS-3013 C-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.
1 Process Description and Control Chapter 3 = Why process? = What is a process? = How to represent processes? = How to control processes?
Process Description and Control A process is sometimes called a task, it is a program in execution.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Process Description and Control Chapter 3. Major Requirements of an OS Interleave the execution of several processes to maximize processor utilization.
System Calls 1.
Processes and Threads.
CSC 501 Lecture 2: Processes. Process Process is a running program a program in execution an “instantiation” of a program Program is a bunch of instructions.
Implementing Processes and Process Management Brian Bershad.
Chapter 3 Process Description and Control
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-1 Process Concepts Department of Computer Science and Software.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 2-1: Process Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Multiprogramming. Readings r Silberschatz, Galvin, Gagne, “Operating System Concepts”, 8 th edition: Chapter 3.1, 3.2.
1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE.
CS333 Intro to Operating Systems Jonathan Walpole.
Operating Systems Processes 1.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
Process Description and Control Chapter 3. Source Modified slides from Missouri U. of Science and Tech.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
What is a Process ? A program in execution.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
1 Module 3: Processes Reading: Chapter Next Module: –Inter-process Communication –Process Scheduling –Reading: Chapter 4.5, 6.1 – 6.3.
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Multiprogramming. Readings r Chapter 2.1 of the textbook.
Processes and threads.
Chapter 3: Process Concept
Jonathan Walpole Computer Science Portland State University
Protection of System Resources
Chapter 3: Processes.
Lecture 2: Processes Part 1
More examples How many processes does this piece of code create?
Process & its States Lecture 5.
Lecture Topics: 11/1 General Operating System Concepts Processes
Process Description and Control
Processes Hank Levy 1.
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
Processes and Process Management
Process Control B.Ramamurthy 2/22/2019 B.Ramamurthy.
Jonathan Walpole Computer Science Portland State University
Process Description and Control
Lecture 6: Multiprogramming and Context Switching
Unix Process Control B.Ramamurthy 4/11/2019 B.Ramamurthy.
Processes in Unix and Windows
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
CS510 Operating System Foundations
Processes Hank Levy 1.
Presentation transcript:

1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State University

2 Lecture overview OS-Related Hardware & Software Memory protection and relocation Virtual memory & MMUs I/O & Interrupts Processes Process scheduling Process states Process hierarchies Process system calls in Unix

3 Memory protection and relocation...  Memory protection (basic ideas)  virtual vs physical addresses address range in each application starts at 0  “base register” used to convert each virtual address to a physical address before main memory is accessed  address is compared to a “limit register” to keep memory references within bounds  Relocation  by changing the base register value  Paged virtual memory  same basic concept, but more powerful (and complex)

4 Base & Limit Registers (single & multiple)

5 Virtual memory and MMUs  Memory management unit (MMU)  hardware provided equivalent of base registers  at the granularity of “pages” of memory, say 2kB, i.e., lots of them!  supports relocation at page granularity  applications need not occupy contiguous physical memory  Memory protection  limit registers don’t work in this context  per-page and per-application protection registers  Relocation and protection occur at CPU speeds!

6 What about I/O devices? Monitor Bus A simplified view of a computer system

7 Structure of a large Pentium system

8 What about I/O devices? Monitor Bus A simplified view of a computer system

9 How do programs interact with devices?  Devices vs device controllers vs device drivers  device drivers are part of the OS  programs call the OS which calls the device driver  Device drivers interact with device controllers  either using special IO instructions  or by reading/writing controller registers that appear as memory locations  Why protect access to devices by accessing them indirectly via the OS?

10 How do devices interact with programs?  Interrupts

11 Different types of interrupts  Timer interrupts  Allows OS to maintain control  One way to keep track of time  I/O interrupts  Keyboard, mouse, disks, etc…  Hardware failures  Program generated (traps)  Programming errors: seg. faults, divide by zero, etc.  System calls like read(), write(), gettimeofday()

12 Timer interrupts  OS can ask timer device to interrupt after a specified time period has elapsed  Interrupt invokes timer interrupt handler which invokes OS “scheduler”  OS can take the opportunity to save the current application and restore a different one  context switch

13 Why use traps for system calls?  The Operating System is just a program!  It must have the privilege to manipulate the hardware  set base and limit registers for memory protection  access devices  set and clear mode bit to enable privilege  If user programs execute with the mode bit clear, and do not have privilege to set it, how can they invoke the OS so that it can run with the mode bit set?  That’s what traps do … set the mode bit and begin execution at a specific point in memory (in the OS!)

14 System calls  System calls are the mechanism by which programs communicate with the O.S.  Implemented via a TRAP instruction  Example UNIX system calls: open(), read(), write(), close() kill(), signal() fork(), wait(), exec(), getpid() link(), unlink(), mount(), chdir() setuid(), getuid(), chown()

15 The inner workings of a system call Process usercode {... read (file, buffer, n);... } Procedure read(file, buff, n) {... read(file, buff, n)... } _read: LOAD LOAD LOAD TRAP Read_Call User-level code Library code

16 Steps in making a system call

17 What about disks and file storage? Structure of a disk drive

18 Disks and file storage  Manipulating the disk device is complicated  hide some of the complexity behind disk controller, disk device driver  Disk blocks are not a very user-friendly abstraction for storage  contiguous allocation may be difficult for large data items  how do you manage administrative information?  One application should not (automatically) be able to access another application’s storage  OS needs to provide a “file system”

19 File systems File system - an abstraction above disk blocks

20 What about networks?  Network interfaces are just another kind of shared device/resource  Need to hide complexity  send and receive primitives, packets, interrupts etc  protocol layers  Need to protect the device  access via the OS  Need to allocate resources fairly  packet scheduling

21 The Process Concept  Process – a program in execution  Program –description of how to perform an activity –instructions and static data values  Process –a snapshot of a program in execution –memory (program instructions, static and dynamic data values) –CPU state (registers, PC, SP, etc) –operating system state (open files, accounting statistics etc)

22 Process address space  Each process runs in its own virtual memory address space that consists of:  Stack space – used for function and system calls  Data space – variables (both initialized and uninitialized)  Text – the program code (usually read only)  Invoking the same program multiple times results in the creation of multiple distinct address spaces stack text data Address space

23 Memory Program Code Program Data Running a process on a CPU  In its simplest form, a computer performs instructions on operands. Registers are used to hold values temporarily to speed things up CPU ALU ADD R1, R2 SPPC

24 Switching among multiple processes  Saving all the information about a process allows a process to be temporarily suspended Memory Program Code Program Data CPU ALU SPPC Program State Program 1 has CPU

25 Switching among multiple processes  Saving all the information about a process allows a process to be temporarily suspended Memory Program Code Program Data CPU ALU SPPC Program State Program Code Program Data SUB R1, R2 Program 2 has CPU

26 Switching among multiple processes  Saving all the information about a process allows a process to be temporarily suspended Memory Program Code Program Data CPU ALU SPPC Program State Program Code Program Data Program State Program 2 has CPU

27 Switching among multiple processes  Saving all the information about a process allows a process to be temporarily suspended Memory Program Code Program Data CPU ALU SPPC Program State Program Code Program Data Program State Program 1 has CPU

28 Switching among multiple processes  Saving all the information about a process allows a process to be temporarily suspended Memory Program Code Program Data CPU ALU SPPC Program State Program Code Program Data Program State ADD R1, R3 Program 1 has CPU

29 Why use the process abstraction?  Multiprogramming of four programs in the same address space  Conceptual model of 4 independent, sequential processes  Only one program active at any instant

30 The role of the scheduler  Lowest layer of process-structured OS  handles interrupts & scheduling of processes  Above that layer are sequential processes

31 Process states  Possible process states  running  blocked  ready

32 Implementation of process switching  Skeleton of what the lowest levels of the OS do when an interrupt occurs

33 How do processes get created? Principal events that cause process creation  System initialization  Initiation of a batch job  User request to create a new process  Execution of a process creation system call from another process

34 Process hierarchies  Parent creates a child process,  special system calls for communicating with and waiting for child processes  each process is assigned a unique identifying number or process ID (PID)  Child processes can create their own child processes  Forms a hierarchy  UNIX calls this a "process group"  Windows has no concept of process hierarchy  all processes are created equal

35 How do processes terminate? Conditions which terminate processes  Normal exit (voluntary)  Error exit (voluntary)  Fatal error (involuntary)  Killed by another process (involuntary)

36 Process creation in UNIX  All processes have a unique process id  getpid(), getppid() allow processes to get their information  Process creation  fork() creates a copy of a process and returns in both processes, but with a different return value  exec() replaces an address space with a new program  Process termination, signaling  signal(), kill() allows a process to be terminated or have specific signals sent to it

37 Example: process creation in UNIX … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 22)

38 Process creation in UNIX example … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 22) … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 24)

39 Process creation in UNIX example … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 22) … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 24)

40 Process creation in UNIX example … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 22) … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 24)

41 Process creation in UNIX example … pid = fork() if (pid == 0) { // child… … exec(); } else { // parent wait(); } … csh (pid = 22) //ls program main(){ //look up dir … } ls (pid = 24)

42 What other process state does the OS manage? Fields of a process table entry

43 What about the OS?  Is the OS a process?  It is a program in execution, after all …  Does it need a process control block?  Who manages its state when its not running?

44 What to do before next class  Reading for next week’s class - pages  Finish project 1 – Introduction to BLITZ