* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Answer
Survey
Document related concepts
Transcript
<Exercise 1> Due date: March 24, 11:59 P.M. (아래와 비슷한 내용을 포함하고 있으면 크게 점수 깍지 않을 것입니다.) 1. What is spooling? Do you think that advanced personal computers will have spooling as a standard feature in the future? (5 points) Input spooling is the technique of reading in jobs, for example, from cards, onto the disk, so that when the currently executing processes are finished, there will be work waiting for the CPU. Output spooling consists of first copying printable files to disk before printing them, rather than printing directly as the output is generated. Input spooling on a personal computer is not very likely, but output spooling is. 2. What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose? (8 points) An interrupt is a hardware-generated change of flow within the system. An interrupt handler is called to deal with the cause of the interrupt; control is then returned to the interrupted context and instruction. A trap is a software-generated interrupt. An interrupt can be used to signal the completion of an I/O to obviate the need for device polling. A trap can be generated intentionally by a user program. It can be used to call operating system routines or to catch arithmetic errors. 3. Define the essential properties of the following types of operating systems: (10 points) a. Batch Jobs with similar needs are batched together and run through the computer as a group by an operator or automatic job sequencer. Performance is increased by attempting to keep CPU and I/O devices busy at all times through buffering, off-line operation, spooling, and multiprogramming. Batch is good for executing large jobs that need little interaction; they can be submitted and picked up later. b. Time sharing This system uses CPU scheduling and multiprogramming to provide economical interactive use of a system. The CPU switches rapidly from one user to another. Instead of having a job defined by spooled card images, each program reads its next control card from the terminal, and output is normally printed immediately to the screen. c. Real time Often used in a dedicated application, this system reads information from sensors and must respond within a fixed amount of time to ensure correct performance. d. Parallel Parallel operating systems are the interface between parallel computers (or computer systems) and the applications (parallel or not) that are executed on them. Parallel operating systems are primarily concerned with managing the resources of parallel machines. This task faces many challenges: (a) application programmers demand all the performance possible, (b) additionally, there is some (mostly experimental) work done towards the exploitation of the shared memory paradigm on top of networks of workstations or personal computers. e. Distributed This system distributes computation among several physical processors. The processors do not share memory or a clock. Instead, each processor has its own local memory. They communicate with each other through various communication lines, such as a high-speed bus or local area network. 4. Give two reasons why caches (in memory) are useful. What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device? (8 points) Caches are useful when two or more components need to exchange data, and the components perform transfers at differing speeds. Caches solve the transfer problem by providing a buffer of intermediate speed between the components. If the fast device finds the data it needs in the cache, it need not wait for the slower device. The data in the cache must be kept consistent with the data in the components. If a component has a data value change, and the datum is also in the cache, the cache must also be updated. This is especially a problem on multiprocessor systems where more than one process may be accessing a datum. A component may be eliminated by an equal-sized cache, but only if: (a) the cache and the component have equivalent state-saving capacity (that is, if the component retains its data when electricity is removed, the cache must retain data as well), and (b) the cache is affordable, because faster storage tends to be more expensive. 5. In Fig. 2-10, a multithreaded Web server is shown. If the only way to read from a file is the normal blocking read system call, do you think user-level threads or kernel-level threads are being used for the Web server? Why? (5 points) A worker thread will block when it has to read a Web page from the disk. If user-level threads are being used, this action will block the entire process, destroying the value of multithreading. Thus it is essential that kernel threads are used to permit some threads to block without affecting the others. 6. Which of the following components of program state are shared across threads in a multithreaded process? (4 points) a. Register values b. Heap memory c. Global variables d. Stack memory The threads of a multithreaded process share heap memory and global variables. Each thread has its separate set of register values and a separate stack.