High Performance Computing Lecture 11
Matthew Jacob Indian Institute of Science
Agenda
1. Program execution: Compilation, Object files, Function call and return, Address space, Data & its representation 2. Computer organization: Memory, Registers, Instruction set architecture, Instruction processing 3. Virtual memory: Address translation, Paging 4. Operating system: Processes, System calls, Process management 5. Pipelined processors: Structural, data and control hazards, impact on programming 6. Cache memory: Organization, impact on programming 7. Program profiling 8. File systems: Disk management, Name management, Protection 9. Parallel programming: Inter-process communication, Synchronization, Mutual exclusion, Parallel architecture, Programming with message passing using MPI (4) (6) (4) (6) (4) (5) (2) (4)
(5)
Computer Organization: Hardware
CPU
ALU Registers Control MMU
Memory
Cache
Bus
I/O
I/O
I/O
Computer Organization: Software
Hardware resources of computer system are shared by programs in execution Operating System: Special software that manages this sharing
Operating Systems (OS)
Examples
Unix AIX, HP-UX, Solaris Linux Fedora, openSUSE, Ubuntu, Debian Apple Mac OS Mac OS X Snow Leopard Microsoft Windows Windows 7, Vista, XP Google Chrome OS
Computer Organization: Software
Hardware resources of computer system are shared by programs in execution Operating System: Special software that manages this sharing Process: A program in execution
i.e., present in main memory and being executed On Unix systems, you can use ps to get information about the current status of processes
% ps
Shell prompt
6
Computer Organization: Software
Hardware resources of computer system are shared by programs in execution Operating System: Special software that manages this sharing Process: A program in execution Shell: A command interpreter, through which you interact with the computer system
Examples of Unix shells: csh, bash A program; just another program
% ps PID TTY TIME CMD 15459 pts/10 00:00:00 bash 15491 pts/10 00:00:00 ps
% ps -a PID TTY 6358 pts/4 15538 pts/10 20252 pts/2 31066 pts/5 31072 pts/5 31084 pts/5
TIME 00:00:00 00:00:00 00:00:01 00:00:01 00:00:00 00:00:00
CMD pine ps pine emacs-x xterm xdvi-xaw3d.bin
% ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 539 15459 15458 0 76 0 - 16517 wait pts/10 00:00:00 bash 0 R 539 15539 15459 0 78 0 - 15876 pts/10 00:00:00 ps
Operating System, Processes, Hardware
CPU
ALU Registers Control MMU
Memory
Cache
Bus
I/O
I/O
I/O
10
Operating System, Processes, Hardware
11
Operating System, Processes, Hardware
Processes
System Calls Operating System Hardware
12
Operating System, Processes, Hardware
Processes
System Calls OS Kernel Hardware
13
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system
14
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system
Examples: Operations on files
creat(): to create a new file unlink(): to remove a file open(): to open a file for reading and/or writing read(): to read data from an open file into a variable write(): to write data into an open file lseek(): to change the current pointer into the open file
15
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system fork(): to create a new process
Examples: Operations on processes
Terminology: parent process calls fork() which causes a child process to be created Both parent and child processes continue to execute from that point in the program
16
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system fork(): to create a new process exec(): to change the memory image of a process
Examples: Operations on processes
e,g, to change the program that a process is executing
17
fork( ) and exec( )
Parent Process text data heap Child Process text data heap retval = fork(); if (retval == 0) { /* child */ exec(); } else { /* parent */ }
stack
stack
18
fork( ) and exec( )
Parent Process text data heap Child Process text text data
stack
stack
19
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system fork(): to create a new process exec(): to change the memory image of a process exit(): to terminate wait(): to make parent sleep until child terminates
Examples: Operations on processes
20
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system sbrk: can be used by malloc() to increase size of the heap
Examples: Operations on memory
21
System Calls
How a process gets the operating system to do something for it
Interface or API (Application Programming Interface) for interaction with the operating system
Examples: Operations on files, processes, memory, etc When a process is executing in a system call, it is actually executing Operating System code
22
Operating System, Processes, Hardware
Processes
System Calls Operating System Hardware
23