Exploring Linux System Calls & Shell Programming in OS, Exercises of Computer Science

Various aspects of operating systems and virtual memory, including obtaining system call traces in linux, writing a shell program, analyzing page tables, and investigating page faults using the linux time command.

Typology: Exercises

2012/2013

Uploaded on 04/27/2013

eha
eha 🇮🇳

4.3

(6)

42 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
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.
Docsity.com

Partial preview of the text

Download Exploring Linux System Calls & Shell Programming in OS and more Exercises Computer Science in PDF only on Docsity!

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. Thecommand’ 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, 0xA 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.

Docsity.com