1
Module 3 (Lectures 11-15) Introduction to Operating Systems and Virtual Memory 1. Find out how to get a system call trace (details of the sequence of system calls made by a program when executed) in a Linux system. Use this facility to find out what system calls are used: (i) by the dynamic memory allocation library, (ii) during file I/O, (iii) during terminal I/O, (iv) as part of program startup, (v) as part of program termination. 2. A `shell’ is a program that does command interpretation. It takes commands typed in by a user and causes them to be executed. The `command’ could be the name of an existing executable program or one of several `shell commands’ provided by the shell program. You might have used a shell (such as csh, tcsh or bash) before. Write a shell program that can do the following: It should prompt the user for input. The user could respond with the full file name of an executable program file he/she wishes to execute, where the file name would be terminated by the ampersand character (`&’) to indicate immediate re-prompt (a feature that is supported by many shells). In addition, your shell program should be capable of responding to the following shell commands that the user can also type in (the meaning of each is given as a comment): prompt ‘string’ / change the shell prompt to the string provided exit / terminate shell !! / re-execute the previous command time / print current time 3. A given computer system has paged virtual memory, with page size of 4 KBytes. A 24 bit virtual address gets translated into a 32 bit physical address. Given below is information from the current state of some valid pages in the page table corresponding to a given process (values in the table are in decimal). Virtual Page Number Physical Page Number 11 1023 12 47 13 2047 14 255 Consider the following 5 virtual addresses: 0x1A093, 0xD100, 0xF0D1, 0xA093 and 0xE0D0. (i) Which of these virtual addresses are on the same virtual page? (ii) Show the physical addresses (in hexadecimal) for all of the virtual addresses above that can be translated using the available information. 4. During its execution on a system with paged virtual memory, a particular program references its virtual pages in the following sequence (virtual page numbers are given in hexadecimal): A, B, C, D, E, F, A, A, D, C, E, D, A, B, F, C. Assuming that the main memory is of size 4 physical pages and was initially empty, which of these page references will result in page faults if the operating system uses (a) FIFO replacement, (b) LRU replacement 5. The Linux time command can be used to determine how many page faults occurred when a program was executed. Read the manual entry for this command to learn how to use it for this purpose. Use time to discover the paging properties of programs that you frequently use.

Mod 3 Assignments

Embed Size (px)

Citation preview

Page 1: Mod 3 Assignments

Module 3 (Lectures 11-15) Introduction to Operating Systems and Virtual Memory 1. Find out how to get a system call trace (details of the sequence of system calls

made by a program when executed) in a Linux system. Use this facility to find out what system calls are used: (i) by the dynamic memory allocation library, (ii) during file I/O, (iii) during terminal I/O, (iv) as part of program startup, (v) as part of program termination.

2. A `shell’ is a program that does command interpretation. It takes commands typed in by a user and causes them to be executed. The `command’ could be the name of an existing executable program or one of several `shell commands’ provided by the shell program. You might have used a shell (such as csh, tcsh or bash) before. Write a shell program that can do the following: It should prompt the user for input. The user could respond with the full file name of an executable program file he/she wishes to execute, where the file name would be terminated by the ampersand character (`&’) to indicate immediate re-prompt (a feature that is supported by many shells). In addition, your shell program should be capable of responding to the following shell commands that the user can also type in (the meaning of each is given as a comment): prompt ‘string’ / change the shell prompt to the string provided exit / terminate shell !! / re-execute the previous command time / print current time

3. A given computer system has paged virtual memory, with page size of 4 KBytes. A 24 bit virtual address gets translated into a 32 bit physical address. Given below is information from the current state of some valid pages in the page table corresponding to a given process (values in the table are in decimal).

Virtual Page Number

Physical Page Number

11 1023 12 47 13 2047 14 255

Consider the following 5 virtual addresses: 0x1A093, 0xD100, 0xF0D1, 0xA093 and 0xE0D0. (i) Which of these virtual addresses are on the same virtual page? (ii) Show the physical addresses (in hexadecimal) for all of the virtual addresses above that can be translated using the available information.

4. During its execution on a system with paged virtual memory, a particular program references its virtual pages in the following sequence (virtual page numbers are given in hexadecimal): A, B, C, D, E, F, A, A, D, C, E, D, A, B, F, C. Assuming that the main memory is of size 4 physical pages and was initially empty, which of these page references will result in page faults if the operating system uses (a) FIFO replacement, (b) LRU replacement

5. The Linux time command can be used to determine how many page faults occurred when a program was executed. Read the manual entry for this command to learn how to use it for this purpose. Use time to discover the paging properties of programs that you frequently use.