0% found this document useful (0 votes)
81 views

HPC Lecture11

This document discusses an agenda for a high performance computing lecture that covers various topics related to program execution, computer organization, virtual memory, operating systems, pipelined processors, cache memory, and parallel programming. It specifically focuses on system calls as the interface between processes and the operating system, providing examples like fork(), exec(), exit(), and wait() for process operations and sbrk() for memory allocation. Diagrams illustrate the relationship between processes, system calls, the operating system kernel, and underlying hardware.

Uploaded by

Taran Aulakh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
81 views

HPC Lecture11

This document discusses an agenda for a high performance computing lecture that covers various topics related to program execution, computer organization, virtual memory, operating systems, pipelined processors, cache memory, and parallel programming. It specifically focuses on system calls as the interface between processes and the operating system, providing examples like fork(), exec(), exit(), and wait() for process operations and sbrk() for memory allocation. Diagrams illustrate the relationship between processes, system calls, the operating system kernel, and underlying hardware.

Uploaded by

Taran Aulakh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

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

You might also like