Content. Introduction and History. File I/O. The File System. Shell Programming. Standard Unix Files and Configuration. Processes

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Content. Introduction and History. File I/O. The File System. Shell Programming. Standard Unix Files and Configuration. Processes"

Transcription

1 Content Introduction and History File I/O The File System Shell Programming Standard Unix Files and Configuration Processes

2 Programs are instruction sets stored on a permanent medium (e.g. harddisc). Processes are instantiated programs which run in a computer s main memory. Modern operating systems can executed several processes at the same time. By switching quickly between the processes, the OS creates the illusion of parallel process execution. Process switching is done by the so-called scheduler. Process can be in different states: Waiting for input Computing Process activated by scheduler Scheduler chooses different process Blocked Input available Ready

3 State Computing: Process is currently using the processor. State Ready: Scheduler has suspended the process. The process is waiting to be activated by the scheduler. State Blocked: The process needs some input which is currently not available. To avoid busy waiting the process is deactivated. Waiting for input Computing Process activated by scheduler Scheduler chooses different process Blocked Input available Ready

4 Waiting for input Computing Process activated by scheduler Scheduler chooses different process Blocked Input available Ready To reactivate a process its previous state must be restored. This includes: the program counter all registers status word stack pointer memory pointers

5 Process activation and suspension: Registers PC, SC, of Process1 are saved Registers, PC, SC, of Process 2 are restored Process 1 Process 2 The scheduler decides which process is when activated and deactivated. This is the socalled scheduling strategy. time

6 Each process is described by one so-called Process Control Block (PCB): Dynamic Infos Memory Management File Management Etc. Registers Pointer to Textseg. Root Direc. Priority Programm Counter Pointer to Dataseg. Working Direc. Process ID Program Status Word Pointer to Stackseg. File Descriptor Scheduling Infos Stack Pointer User-ID Parent Process Process State Group-ID Signals Starting Time Next Alarm

7 src/proc.h: struct proc { struct stackframe_s p_reg; /* process' registers saved in stack frame */ proc_nr_t p_nr; /* number of this process (for fast access) */ struct priv *p_priv; /* system privileges structure */ char p_rts_flags; /* SENDING, RECEIVING, etc. */ char p_misc_flags; /* Flags that do suspend the process */ char p_priority; /* current scheduling priority */ char p_max_priority; /* maximum scheduling priority */ char p_ticks_left; /* number of scheduling ticks left */ char p_quantum_size; /* quantum size in ticks */ struct mem_map p_memmap[nr_local_segs]; /* memory map (T, D, S) */ clock_t p_user_time; /* user time in ticks */ clock_t p_sys_time; /* sys time in ticks */

8 Unix: 1.fork() creates a copy of the running process 2.loading of new memory image (program), e.g. by calling execve() Windows: 1. CreateProcess() creates new process and loads new program

9 Unix processes remember their parent process. Since all Unix operating systems first create an initial process named init, every Unix system is essentially a tree of processes with init being the root. init forks off one process for each terminal. Users can log in into each terminal. The shell process than forks off new shells for each command. Windows process are not hierarchically.

10 Process can end in different ways: self termination termination by means of a serious problem termination by operating system self termination: Unix: call of exit() Windows: call of exitprocess() termination by means of a serious problem: invalid instruction invalid memory address division by zero termination by operating system: Unix: kill() Windows: TerminateProcess()

11 As mentioned, processes take care of resource and execution control. Sometimes closely related program modules should run in parallel, communicate with each other and use the same resources. So while execution control is needed, resource control is unnecessary and might even hinder the communication, e.g. by preventing shared memory. For such cases, threads were invented. Threads are therefore light-weighted processes which only need some execution information: Dynamic Infos Memory Management File Management Etc. Registers Pointer to Textseg. Root Direc. Priority Programm Counter Pointer to Dataseg. Working Direc. Process ID Program Status Word Pointer to Stackseg. File Descriptor Scheduling Infos Stack Pointer User-ID Parent Process Process State Group-ID Signals Starting Time Next Alarm

12 A process is instantiated from a program file. When a program is instantiated, first of all a startup code is executed which then jumps into the main function. The program layout is as follows: Command line arguments and env. variables Stack Heap uninitialized data (bss) set to zero by exec Shared libraries are a way for processes to share code. initialized data Text copied from program

13 Dynamic memory allocation happens on the heap using the functions malloc, calloc, and realloc. free is used to free the memory. Assignment: 1) Write a C program which allocates some memory, uses it to store a string, and frees the memory again.

14 Creation of a new process Process ID = 41. id = fork(); id == 42. Process ID = 42. id = fork(); id == 0. The child process is a copy of the parent process, i.e. data, bss, and heap, stack segments are copied. Both share the same text segment. #include <unistd.h> All user ID/Group ID, terminals, directories, etc. are also copied. pid_t fork(void); Parent process: Process ID of child process. Child process: 0

15 #include <unistd.h> pid_t getpid(void); pid_t getppid(void); // Returns process ID // Returns parent s process ID #include <stdlib.h> void exit(int statue); void abort(void); // Finishes process // Aborts a process #include <sys/wait.h> pid_t wait(int *statloc); // Waits for a child process // to finish, returns child process ID pid_t waitpid(pid_t pid, int *statloc, int options); // pid>0: Waits for the child process pid to finish, // pid==0: Waits for a child process with the same group // process ID to finish, // pid<-1: Wait for a child process with the group process ID // pid to finish

16

17 After the fork(), the child process usually changes its program image: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg0,... /*, (char *)0 */); int execle(const char *path, const char *arg0,... /*, (char *)0, char *const envp[] */); int execlp(const char *file, const char *arg0,... /*, (char *)0 */); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int execvp(const char *file, const char *search_path, char *const argv[]);

18

displays a list of processes executed in current shell

displays a list of processes executed in current shell A process consists of : - an executing (running) program - its current values - state information - the resources used by the operating system to manage the execution ps displays a list of processes executed

More information

Mini Project 1 Tech Shell

Mini Project 1 Tech Shell Mini Project 1 Tech Shell Dr. Chokchai (Box) Leangsuksun Louisiana Tech University 1 Requirements What is a shell? A system program that provides interfaces to system resources and execute other programs"

More information

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent

More information

CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17

CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17 CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17 System Calls for Processes Ref: Process: Chapter 5 of [HGS]. A program in execution. Several processes are executed concurrently by the

More information

5. Processes and Memory Management

5. Processes and Memory Management 5. Processes and Memory Management 5. Processes and Memory Management Process Abstraction Introduction to Memory Management Process Implementation States and Scheduling Programmer Interface Process Genealogy

More information

Lecture 25 Systems Programming Process Control

Lecture 25 Systems Programming Process Control Lecture 25 Systems Programming Process Control A process is defined as an instance of a program that is currently running. A uni processor system or single core system can still execute multiple processes

More information

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

CS345 OPERATING SYSTEMS System calls & Signals. Panagiotis Papadopoulos

CS345 OPERATING SYSTEMS System calls & Signals. Panagiotis Papadopoulos CS345 OPERATING SYSTEMS System calls & Signals Panagiotis Papadopoulos panpap@csd.uoc.gr 1 SYSTEM CALL When a program invokes a system call, it is interrupted and the system switches to Kernel space. The

More information

1 Posix API vs Windows API

1 Posix API vs Windows API 1 Posix API vs Windows API 1.1 File I/O Using the Posix API, to open a file, you use open(filename, flags, more optional flags). If the O CREAT flag is passed, the file will be created if it doesnt exist.

More information

Process definition Concurrency Process status Process attributes PROCESES 1.3

Process definition Concurrency Process status Process attributes PROCESES 1.3 Process Management Outline Main concepts Basic services for process management (Linux based) Inter process communications: Linux Signals and synchronization Internal process management Basic data structures:

More information

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what

More information

OPERATING SYSTEMS. IIIT-Hyderabad

OPERATING SYSTEMS. IIIT-Hyderabad OPERATING SYSTEMS IIIT-Hyderabad OVERVIEW Introduction What is an OS/Kernel? Bootstrap program Interrupts and exceptions Volatile and Non volatile storage!!! Process Management What is a process/system

More information

Process Description and Control. 2004-2008 william stallings, maurizio pizzonia - sistemi operativi

Process Description and Control. 2004-2008 william stallings, maurizio pizzonia - sistemi operativi Process Description and Control 1 Process A program in execution (running) on a computer The entity that can be assigned to and executed on a processor A unit of activity characterized by a at least one

More information

Operating Systems and Networks

Operating Systems and Networks recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls

More information

Last Class: Introduction to Operating Systems. Today: OS and Computer Architecture

Last Class: Introduction to Operating Systems. Today: OS and Computer Architecture Last Class: Introduction to Operating Systems User apps OS Virtual machine interface hardware physical machine interface An operating system is the interface between the user and the architecture. History

More information

Memory management in C: The heap and the stack

Memory management in C: The heap and the stack Memory management in C: The heap and the stack Leo Ferres Department of Computer Science Universidad de Concepción leo@inf.udec.cl October 7, 2010 1 Introduction When a program is loaded into memory, it

More information

Leak Check Version 2.1 for Linux TM

Leak Check Version 2.1 for Linux TM Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information

More information

An Implementation Of Multiprocessor Linux

An Implementation Of Multiprocessor Linux An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than

More information

CompTIA Linux + Certification Week 9 Projects

CompTIA Linux + Certification Week 9 Projects CompTIA Linux + Certification Week 9 Projects Project 9-1 In this hands- on project, you view characteristics of processes using the ps command. 1. Turn on your computer. After your Linux system has loaded,

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus 1 Concurrency and Process Challenge: Physical reality is Concurrent Smart to do concurrent software instead of sequential? At least we want to have

More information

Pointers and dynamic memory management in C

Pointers and dynamic memory management in C Pointers and dynamic memory management in C Jakob Rieck Proseminar C - 2014 Contents 1 Introduction 2 2 Pointers 4 2.1 Declaration & Initialization................... 5 2.2 Using pointers..........................

More information

Debugging with TotalView

Debugging with TotalView Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich

More information

Linux Memory Management

Linux Memory Management Lecture Overview Linux memory management This part of the Linux kernel is relatively complex and is only presented in overview, the point is to familiarize yourself with the names and terminology Paging

More information

Assignment0: Linux Basics and /proc

Assignment0: Linux Basics and /proc Assignment0: Linux Basics and /proc CS314 Operating Systems This project was adapted from Gary Nutt s Excellent Book Kernel Projects for Linux published by Addison-Wesley 2001. You will learn several important

More information

Intel P6 Systemprogrammering 2007 Föreläsning 5 P6/Linux Memory System

Intel P6 Systemprogrammering 2007 Föreläsning 5 P6/Linux Memory System Intel P6 Systemprogrammering 07 Föreläsning 5 P6/Linux ory System Topics P6 address translation Linux memory management Linux page fault handling memory mapping Internal Designation for Successor to Pentium

More information

Chapter 6, The Operating System Machine Level

Chapter 6, The Operating System Machine Level Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General

More information

Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>

Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu> Unix Security Technologies Pete Markowsky What is this about? The goal of this CPU/SWS are: Introduce you to classic vulnerabilities Get you to understand security advisories Make

More information

Libmonitor: A Tool for First-Party Monitoring

Libmonitor: A Tool for First-Party Monitoring Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 krentel@rice.edu ABSTRACT Libmonitor is a library that provides

More information

7.2 Examining Processes on the Command Line

7.2 Examining Processes on the Command Line Chapter 7 Process Architecture and Control Concepts Covered Memory architecture of a process Memory structures Viewing memory layout Process structure Executable le format Process creation Process synchronization

More information

Process Management. Processes. CS 502 Spring 99 WPI MetroWest/Southboro Campus

Process Management. Processes. CS 502 Spring 99 WPI MetroWest/Southboro Campus Process Management CS 502 Spring 99 WPI MetroWest/Southboro Campus Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Threads Interprocess Communication 1 1 Process

More information

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating

More information

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015 Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program

More information

The Linux Kernel: Process Management. CS591 (Spring 2001)

The Linux Kernel: Process Management. CS591 (Spring 2001) The Linux Kernel: Process Management Process Descriptors The kernel maintains info about each process in a process descriptor, of type task_struct. See include/linux/sched.h Each process descriptor contains

More information

CS420: Operating Systems OS Services & System Calls

CS420: Operating Systems OS Services & System Calls NK YORK COLLEGE OF PENNSYLVANIA HG OK 2 YORK COLLEGE OF PENNSYLVAN OS Services & System Calls James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts,

More information

CS161: Operating Systems

CS161: Operating Systems CS161: Operating Systems Matt Welsh mdw@eecs.harvard.edu Lecture 2: OS Structure and System Calls February 6, 2007 1 Lecture Overview Protection Boundaries and Privilege Levels What makes the kernel different

More information

Grundlagen der Betriebssystemprogrammierung

Grundlagen der Betriebssystemprogrammierung Grundlagen der Betriebssystemprogrammierung Präsentation A3, A4, A5, A6 21. März 2013 IAIK Grundlagen der Betriebssystemprogrammierung 1 / 73 1 A3 - Function Pointers 2 A4 - C++: The good, the bad and

More information

Readings. Silberschatz, Galvin, Gagne Chapter 2

Readings. Silberschatz, Galvin, Gagne Chapter 2 System Calls Readings Silberschatz, Galvin, Gagne Chapter 2 Interface to the OS We had a discussion of shells which allows a user to interface with the operating system through the command line A second

More information

Basic Multiprocessing in UNIX. With Examples

Basic Multiprocessing in UNIX. With Examples Basic Multiprocessing in UNIX With Examples Parallel Applications Modern computers have multiple CPU cores (and/or multiple CPUs) on board We have to be able to utilize the computing power by parallelizing

More information

System Call Tracing using ptrace. #include <sys/ptrace.h> long int ptrace(enum ptrace_request request, pid_t pid, void * addr, void * data)

System Call Tracing using ptrace. #include <sys/ptrace.h> long int ptrace(enum ptrace_request request, pid_t pid, void * addr, void * data) System Call Tracing using ptrace Introduction! Synopsis 1 #include long int ptrace(enum ptrace_request request, pid_t pid, void * addr, void * data)! Description 2 The ptrace system call

More information

System Security Fundamentals

System Security Fundamentals System Security Fundamentals Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano alessandro.barenghi - at - polimi.it April 28, 2015 Lesson contents Overview

More information

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest 1. Introduction Few years ago, parallel computers could

More information

Operating Systems. Week 2 Recitation: The system call. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating Systems. Week 2 Recitation: The system call. Paul Krzyzanowski. Rutgers University. Spring 2015 Operating Systems Week 2 Recitation: The system call Paul Krzyzanowski Rutgers University Spring 2015 February 14, 2015 2014-2015 Paul Krzyzanowski 1 System calls System calls are an operating system s

More information

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered

More information

Minix Mini Unix (Minix) basically, a UNIX - compatible operating system. Minix is small in size, with microkernel-based design. Minix has been kept

Minix Mini Unix (Minix) basically, a UNIX - compatible operating system. Minix is small in size, with microkernel-based design. Minix has been kept Minix Mini Unix (Minix) basically, a UNIX - compatible operating system. Minix is small in size, with microkernel-based design. Minix has been kept (relatively) small and simple. Minix is small, it is

More information

Java Troubleshooting and Performance

Java Troubleshooting and Performance Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize

More information

System Calls and Standard I/O

System Calls and Standard I/O System Calls and Standard I/O Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class System calls o How a user process contacts the Operating System o For advanced services

More information

Chapter 14 Virtual Machines

Chapter 14 Virtual Machines Operating Systems: Internals and Design Principles Chapter 14 Virtual Machines Eighth Edition By William Stallings Virtual Machines (VM) Virtualization technology enables a single PC or server to simultaneously

More information

Linux Driver Devices. Why, When, Which, How?

Linux Driver Devices. Why, When, Which, How? Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may

More information

CS 153 Lab1. Kishore Kumar Pusukuri

CS 153 Lab1. Kishore Kumar Pusukuri Outline Overview of Linux/Unix Linux is a variant of UNIX (with only small deviations). Linus Torvalds. 1991. Monolithic kernel rather than Micro-kernel. Linux is free, this license, the GPL (GNU Public

More information

Shared Address Space Computing: Programming

Shared Address Space Computing: Programming Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model

More information

Jorix kernel: real-time scheduling

Jorix kernel: real-time scheduling Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and

More information

The Operating System Machine Level

The Operating System Machine Level The Operating System Machine Level Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.uni-linz.ac.at http://www.risc.uni-linz.ac.at/people/schreine

More information

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig 2 Contents 1 Introduction 6 2 Using System Monitor 7 2.1 Getting started........................................ 7 2.2 Process Table.........................................

More information

theguard! ApplicationManager Operating System Data Collector for Solaris 10 with Virtualization (Zones)

theguard! ApplicationManager Operating System Data Collector for Solaris 10 with Virtualization (Zones) theguard! ApplicationManager Operating System Data Collector for Solaris 10 with Virtualization (Zones) Status: 9/25/2006 Introduction...3 Performance Features of the ApplicationManager Data Collector

More information

Embedded Systems. Chapter 6. Real-Time Operating System

Embedded Systems. Chapter 6. Real-Time Operating System Embedded Systems Chapter 6 Real-Time Operating System 6. Real-Time Operating System [8 Hrs.] 6.1 Operating System Basics 6.2 Task, Process, and Threads 6.3 Multiprocessing and Multitasking 6.4 Task Scheduling

More information

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2 SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1

More information

3 Phase 2 - Level 3: The Nucleus

3 Phase 2 - Level 3: The Nucleus 3 Phase 2 - Level 3: The Nucleus Level 3 (the nucleus) of JaeOS builds on previous levels in two key ways: Building on the exception handling facility of Level 1 (the ROM-Excpt handler), provide the exception

More information

CS630 Operating System Design Second Exam, Fall 2015,

CS630 Operating System Design Second Exam, Fall 2015, CS630 Operating System Design Second Exam, Fall 2015, Problem 1. (5 Points) The simplest method to prevent dead lock is resource ordering. How this method works and what is/are the problem(s) it may be

More information

COS 318: Operating Systems

COS 318: Operating Systems COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms

More information

Sample Exam Question Answers

Sample Exam Question Answers Sample Exam Question Answers 1. Explain the structure of the OS and the role of each layer. The user communicates with the OS through a series of user programs which consist of a library of prewritten

More information

Example Solution to Exam in EDA150 C Programming

Example Solution to Exam in EDA150 C Programming Example Solution to Exam in EDA150 C Programming Janurary 12, 2011, 14-19 Inga hjälpmedel! Examinator: Jonas Skeppstedt, tel 0767 888 124 30 out of 60p are needed to pass the exam. General Remarks A function

More information

ARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two

ARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two 3 Processes ARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two terminal windows showing on your screen, then you are probably running the same terminal program twice you have two terminal

More information

This tutorial will take you through step by step approach while learning Operating System concepts.

This tutorial will take you through step by step approach while learning Operating System concepts. About the Tutorial An operating system (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is a vital component

More information

Virtual Private Systems for FreeBSD

Virtual Private Systems for FreeBSD Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

III. Process Scheduling

III. Process Scheduling Intended Schedule III. Process Scheduling Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

III. Process Scheduling

III. Process Scheduling III. Process Scheduling 1 Intended Schedule Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem) 1. Assignment

More information

Stack Overflows. Mitchell Adair

Stack Overflows. Mitchell Adair Stack Overflows Mitchell Adair Outline Why? What? There once was a VM Virtual Memory Registers Stack stack1, stack2, stack3 Resources Why? Real problem Real money Real recognition Still prevalent Very

More information

LSN 10 Linux Overview

LSN 10 Linux Overview LSN 10 Linux Overview ECT362 Operating Systems Department of Engineering Technology LSN 10 Linux Overview Linux Contemporary open source implementation of UNIX available for free on the Internet Introduced

More information

CSC 271 Software I: Utilities and Internals

CSC 271 Software I: Utilities and Internals CSC 271 Software I: Utilities and Internals Lecture 9 : What are Processes? The Process Concept Originally, computers ran only one program at a time, which had total access to all of the computer s resources.

More information

CSC 2405: Computer Systems II

CSC 2405: Computer Systems II CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building mirela.damian@villanova.edu

More information

Example of Standard API

Example of Standard API 16 Example of Standard API 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

More information

RTOS Debugger for ecos

RTOS Debugger for ecos RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3

More information

SYMANTEC BACKUPEXEC2010 WITH StorTrends

SYMANTEC BACKUPEXEC2010 WITH StorTrends SYMANTEC BACKUPEXEC2010 WITH StorTrends 1 Index 1. Introduction 3 2. Test Environment 3 3. System Requirement 4 4. Storage Requirement 4 5. Installation of Symantec Backup EXEC 2010 4 6. Installing Backup

More information

EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University. Multitasking ARM-Applications with uvision and RTX

EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University. Multitasking ARM-Applications with uvision and RTX EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University Multitasking ARM-Applications with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce

More information

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005 Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2005 Quiz II Solutions Average 84, median 83, standard deviation

More information

CIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4

CIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4 CIS 551 / TCOM 401 Computer and Network Security Spring 2005 Lecture 4 Access Control: The Big Picture Objects - resources being protected E.g. files, devices, etc. Subjects - active entities E.g. processes,

More information

Lecture 5. User-Mode Linux. Jeff Dike. November 7, 2012. Operating Systems Practical. OSP Lecture 5, UML 1/33

Lecture 5. User-Mode Linux. Jeff Dike. November 7, 2012. Operating Systems Practical. OSP Lecture 5, UML 1/33 Lecture 5 User-Mode Linux Jeff Dike Operating Systems Practical November 7, 2012 OSP Lecture 5, UML 1/33 Contents User-Mode Linux Keywords Resources Questions OSP Lecture 5, UML 2/33 Outline User-Mode

More information

Operating System Tutorial

Operating System Tutorial Operating System Tutorial OPERATING SYSTEM TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Operating System Tutorial An operating system (OS) is a collection

More information

C Programming Review & Productivity Tools

C Programming Review & Productivity Tools Review & Productivity Tools Giovanni Agosta Piattaforme Software per la Rete Modulo 2 Outline Preliminaries 1 Preliminaries 2 Function Pointers Variadic Functions 3 Build Automation Code Versioning 4 Preliminaries

More information

High Performance Computing in Aachen

High Performance Computing in Aachen High Performance Computing in Aachen Christian Iwainsky iwainsky@rz.rwth-aachen.de Center for Computing and Communication RWTH Aachen University Produktivitätstools unter Linux Sep 16, RWTH Aachen University

More information

Migration of Process Credentials

Migration of Process Credentials C H A P T E R - 5 Migration of Process Credentials 5.1 Introduction 5.2 The Process Identifier 5.3 The Mechanism 5.4 Concluding Remarks 100 CHAPTER 5 Migration of Process Credentials 5.1 Introduction Every

More information

Assignment 5: Adding and testing a new system call to Linux kernel

Assignment 5: Adding and testing a new system call to Linux kernel Assignment 5: Adding and testing a new system call to Linux kernel Antonis Papadogiannakis HY345 Operating Systems Course 1 Outline Introduction: system call and Linux kernel Emulators and Virtual Machines

More information

The Operating System Level

The Operating System Level The Operating System Level Virtual Memory File systems Parallel processing Case studies Due 6/3: 2, 3, 18, 23 Like other levels we have studied, the OS level is built on top of the next lower layer. Like

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 17: CPU Scheduling Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 17 1 / 30 Overview Last lecture: Cooperating

More information

PostgreSQL on Windows

PostgreSQL on Windows PostgreSQL on Windows Magnus Hagander magnus@hagander.net PGCon, Ottawa May 2007 1 Agenda Why PostgreSQL on Windows PostgreSQL for the Windows user Windows for the PostgreSQL user Advances in 8.3 2 Why

More information

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1

More information

Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization. Florina Ciorba 24 November 2015

Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization. Florina Ciorba 24 November 2015 Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization Florina Ciorba 24 November 2015 Today s Overview (Main) Memory management Shared libraries Compiling,

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

Advanced Systems Programming

Advanced Systems Programming Advanced Systems Programming Introduction to C++ Martin Küttler September 23, 2016 1 / 21 About this presentation 2 / 21 About this presentation This presentation is not about learning to program 2 / 21

More information

Operating Systems. Privileged Instructions

Operating Systems. Privileged Instructions Operating Systems Operating systems manage processes and resources Processes are executing instances of programs may be the same or different programs process 1 code data process 2 code data process 3

More information

Virtual Memory and Address Translation

Virtual Memory and Address Translation Virtual Memory and Address Translation Review: the Program and the Process VAS Process text segment is initialized directly from program text section. sections Process data segment(s) are initialized from

More information

What is a Thread? Similar to a process Separate thread of execution Each thread has a separate stack, program counter, and run state

What is a Thread? Similar to a process Separate thread of execution Each thread has a separate stack, program counter, and run state What is a Thread? Similar to a process Separate thread of execution Each thread has a separate stack, program counter, and run state Steven M. Bellovin February 1, 2006 1 Differences Between Processes

More information

Objectives and Functions

Objectives and Functions Objectives and Functions William Stallings Computer Organization and Architecture 6 th Edition Week 10 Operating System Support Convenience Making the computer easier to use Efficiency Allowing better

More information

M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: IMPORTANT INSTRUCTIONS: 1. Question Paper in English and Hindi and Candidate can choose any one language. 2. In case of discrepancies in

More information

Module 10: Virtual Memory

Module 10: Virtual Memory Module 10: Virtual Memory Background Demand Paging Performance of Demand Paging Page Replacement Page-Replacement Algorithms Allocation of Frames Thrashing Other Considerations Demand Segmenation Applied

More information

Debugging Heap Corruption in Visual C++ Using Microsoft Debugging Tools for Windows

Debugging Heap Corruption in Visual C++ Using Microsoft Debugging Tools for Windows Using Microsoft Debugging Tools for Windows Version 10.0 David Dahlbacka Contents Heap Corruption... 2 Causes of Heap Corruption... 2 Debugging Heap Corruption... 2 Debugging Tools...3 Specific WinDbg

More information

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse

More information

Question Points Score 1 25 2 15 3 20 4 25 5 15 Total 100

Question Points Score 1 25 2 15 3 20 4 25 5 15 Total 100 Midterm #1 CMSC 412 Operating Systems Fall 2005 October 17, 2005 Guidelines This exam has 10 pages (including this one); make sure you have them all. Put your name on each page before starting the exam.

More information

W4118 Operating Systems. Junfeng Yang

W4118 Operating Systems. Junfeng Yang W4118 Operating Systems Junfeng Yang Outline Linux overview Interrupt in Linux System call in Linux What is Linux A modern, open-source OS, based on UNIX standards 1991, 0.1 MLOC, single developer Linus

More information