----------------------------------------------------------------- What are the resources shared by an operating system? Indicate for each if it is Reusable, Consumable, or both. ----------------------------------------------------------------- Often an operating system is described as a "Resource Manager". Specify as many such resources as you can. ----------------------------------------------------------------- Often an operating system is described as a "Reactive System". Explain why. ----------------------------------------------------------------- What is a Micro-Kernel Operating System Architecture? What are its advantages? What its disadvantages? ----------------------------------------------------------------- What is a monolithic Operating System? and how does it differ from a Layered Operating System? ----------------------------------------------------------------- A modern operating system is said to be multitasking, multithreaded, preemptive, and multiprocessing. What does it mean? ----------------------------------------------------------------- Describe what is a Kernel or Supervisor call. ----------------------------------------------------------------- What is Spooling? Do you think it is a standard component of operating systems such as Unix and NT? ----------------------------------------------------------------- In the 60s operating systems started supporting Multiprogramming. What does it mean? ----------------------------------------------------------------- Why do computers have (at least) two modes, a user mode and a kernel mode? How does one go from one mode to the other and viceversa? Explain in detail then for each of the following operations indicate if it should be done in user or kernel mode: (a) Read the time of day clock (b) Set the time of day clock (c) Start an IO operation (d) Disable interrupts ----------------------------------------------------------------- Describe what is a process and indicate how it would be different if on a system a service is implemented as a process or as a library (say a DLL in Microsoft). ----------------------------------------------------------------- a. What happens when a CPU receives an interrupt? b. Why, in a single processor system, we can use disabling of interrupts to implement critical regions? c. How can computers use I/O devices if there are no interrupts? ----------------------------------------------------------------- The state of a task in a multitasking system is described by a diagram with three states: RUNNING, READY, BLOCKED. Describe the meaning of each state and each transition. ----------------------------------------------------------------- Describe as many reasons as you can for a process to become blocked and explain how processes waiting for a specific resource are managed. ----------------------------------------------------------------- Define what is a Process Control Block and give some of the information it may contain. ----------------------------------------------------------------- We are given tasks T1 and T2. What does it mean to say that they execute concurrently? ----------------------------------------------------------------- How do you make sure that the two concurrent processes do not access a shared data structure at the same time? ----------------------------------------------------------------- What would make for a good scheduling policy? Give general criteria and describe one such policy. ----------------------------------------------------------------- What is latency? ----------------------------------------------------------------- Explain the distinction between Pre-emptive and Non Preemtive Scheduling. Be sure to describe the impact that this distinction has on the performance and ease of programming of multi-tasking applications. ----------------------------------------------------------------- Describe how in a paged memory system a virtual address is converted into a physical address. ---------------------------------------------------------------- In Storage Management are discussed Internal and External Fragmentation. Define what they are. Any idea about how much storage is wasted (i.e. remain unutilized) because of them? ----------------------------------------------------------------- Describe 3 reasons for using Virtual memory. ----------------------------------------------------------------- Describe what is a Virtual memory that is Segmented over Pages. ----------------------------------------------------------------- We have seen virtual memory addresses grow from 16 bits to 64 bits. Can you give some reasons for this growth? ----------------------------------------------------------------- What is Trashing and how can you prevent it? ----------------------------------------------------------------- Define Hard and Soft page faults. ----------------------------------------------------------------- What are the necessary conditions for Deadlocks and why? ----------------------------------------------------------------- In Unix a process wants to create a child process that executes the executable image stored in the file filename. Write C code to achieve this. ----------------------------------------------------------------- In Unix when reading and writing to IO devices we may use buffers. Why? Advantages and disadvantages. ----------------------------------------------------------------- The Unix Shell supports commands such as: % S1 | S2 Any idea about what it does and how it is implemented? ----------------------------------------------------------------- Explain the difference between Unix IO commands and Standard C IO commands. Which are portable across operating systems? ----------------------------------------------------------------- Describe the aspects of the UNIX file system that you consider most significant. ----------------------------------------------------------------- Give the reason why we OPEN files before we read or write to them. ----------------------------------------------------------------- Write the function int eqr(const char *a, const char *b); which returns 1 if a is equal to the reverse of b, returns 0 otherwise. For example eqr("rose","esor") is 1 and eqr("anna","enna") is 0. ----------------------------------------------------------------- Give the implementation of a FIFO queue (as a circular buffer) using C. ----------------------------------------------------------------- Given the definition struct node{ struct node *left; struct node *right; char *value;}; implement the function void traverse(struct node *root) that prints out the value associated to all the nodes reacheable from root. Any order will do. ----------------------------------------------------------------- We are given a disk which on a track has 200 sectors, where each sector is 1KB. The disk spins at 6000 rpm. The bus has a data rate of 10MB per second. (a) What is the average rotational delay on this disk? (b) Any problem with this bus? and if yes, how would you deal with it? ----------------------------------------------------------------- Describe how files are protected in Unix. ----------------------------------------------------------------- Implement the function int getHash(char *name, int n) which, given a string, it returns a value in the range 0,1, ..,n-1 Use a good hashing algorithm. ----------------------------------------------------------------- Implement the function: void binary(unsigned int w); which, given w prints out the binary expansion of w. I will accept either the right order or the inverse order. For example, if w is 37, I will be happy with either 100101 or 101001. -----------------------------------------------------------------