/
ex1.html
97 lines (85 loc) · 7.79 KB
/
ex1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style>
#headinfo {
font-weight: bold;
}
.question {
font-style: italic;
}
</style>
<title>Chapter 1 Exercises</title>
</head>
<body>
<p id="headinfo">Group #1<br />
Chapter #1 Exercises 1.4, 1.5, 1.6, 1.9, 1.16<br />
<a href="mailto:Sumit-Khanna@utc.edu">Sumit Khanna</a> and <a href="mailto:Cary-McDevitt@utc.edu">Cary McDevitt</a><br />
</p>
<p class="question">1.4 Which of the functionalities listed below need to be supported by the operating system for the following two settings: (a) handheld devices and (b) real-time systems.<br />
<ol>
<li>Batch programming</li>
<li>Virtual memory</li>
<li>Time sharing</li>
</ol>
<p class="answer">
<b>Batch Processing</b><br />
Batch processing, where several tasks are run in the background without human interaction, is necessary on handheld devices for scheduling tasks such as setting alarms. The user doesn't really see this as a creating a batch process thanks to the nice graphical user interface.
<br/><br />
In an embedded real-time system, there is no reason for batch processes since there is only one process and it runs sequentially. If the process contains a main while loop, a scheduler can be made, either by polling the clock or checking interrupts, to run certain procedures at given times to simulate batch processing.
<br /><br />
<b>Virtual Memory</b>
Virtual Memory refers to using cheaper and larger non-volatile storage to extend the storage of the significantly faster, but smaller and more expensive physical memory through a process called paging. In a handheld, there is no need for virtual memory because very few handhelds have hard drives. Instead all program data and executables occupy the shared volatile memory built into the device. An example of this is a Palm device which only has internal memory/external SD cards but no disk devices.
<br /><br />
Virtual memory is also unnecessary on real-time embedded devices since these devices typically have a very small amount of memory, simple I/O and a unified stack and data space.
<br /><br />
<b>Time Sharing</b>
Time Sharing is what allows a single general purpose processor to run multiple tasks or "processes" simultaneously. In reality, the tasks are not running at the same time, but rather the operating system allows each task a given amount of time, typically a few microseconds.
<br />
Until recently most handheld Palm devices did not support Time Sharing. They were purely event driven and single threaded. They used software interrupts for functions such as alarms. In more recent years, newer Palms support background threads, which have become essential for devices such as Smart Phones. Windows PocketPC (formerly WindowsCE) has always supported a multi-threaded environment more similar to their desktop operating system.
<br />
Time Sharing is not necessary on real-time embedded systems. Being "real-time," these systems typically have a single execution process that has dedicated control of the CPU.
</p>
<p class="question">1.5 Describe the differences between symmetric and asymmetric multiprocessing. What are three advantages and one disadvantage of multiprocessor systems?</p>
<p class="answer">Asymmetric processing is where there are several specific CPUS each designed for individual tasks, for example if you had a dedicated CPU for disk I/O, one for memory access, one for graphics, etc... This type of system is typically found on older DEC systems.
<br />
Symmetric Multiprocessing is where a computer has two more identical CPUs. The operating system can then designate tasks to any of the available CPUs. For one single threaded application, there is very little advantage for using multiple processors as opposed to a single processor. The operating system can choose to offload its interrupt controls on the other CPU, giving the sole application more time, but the performance increase is minimal. Two or more applications that are single threaded can benefit because the operating system can schedule them to run on different processors. Multithreaded apps benefit the most because they can have independent threads of the same application run on different CPUs.
<br /><br />
<b>Advantages</b><br />
<ul>
<li>Allows simultaneous execution of programs on separate CPUs allowing for a performance increase</li>
<li>The operating system can use one processor dedicated to handling system interrupts</li>
<li>Multi-processor servers and multi-core systems are becoming increasingly cheaper / cost-effective</li>
</ul>
<b>Disadvantages</b><br />
<ul><li>Programming multi-threaded applications can be more difficult</li></ul>
<p class="question">1.6 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service?</p>
<p class="answer">A cluster is a collection of standard computers or servers, couples together via a network or high speed interchange, in order to solve complex problems that can be broken down into several large manageable parts. The cluster can have multiprocessor systems within it, but the defining factor of a cluster versus a super-computer, is that there are individual computers.
<br />
For a cluster to be highly available, there must be redundancy and fault-tolerance. In a fault-tolerance system, if one system goes down it will not cause the current process to fail. This is achieved by using some level of redundancy for both the data and the processes.
</p>
<p class="question">1.9 How are network computers different from traditional personal computers? Describe some usage scenarios in which it is advantageous to use network computers.<br />
<p class="answer">Traditional personal computers are mainly used for accomplishes personal tasks and acting on information within the system. Network computers are essentially terminals that understand web-based computing.
<br /><br />
Many usage cases exist in which it is advantageous to use a network computer over a traditional PC. Traditional PCs lack the speed required to maintain web pages, run networks with printers, client PCs, and servers. Network computers are also more efficient for running firewalls to protect their networks from security breaches.</p>
<p class="question">1.16 What netwrok configuration would best suit the following environments?<br />
<ol>
<li>A dormitory floor</li>
<li>A university campus</li>
<li>A state</li>
<li>A nation</li>
</ol>
<p class="answer"><b> Dormitory Floor</b><br />
A dormitory floor is a small geographic area in which the nodes of the network would be in relatively close proximity. For this type of network a LAN (local area network) would be the most appropriate. LANs are faster than WAN and are much more beneficial when the network encompasses a smaller geographic area.
<br /><br />
<b>University Campus</b><br />
A university campus is a larger geographic area than a dormitory floor. University Campuses can cover a lot of area geographically and are therefore generally too large for a LAN. A college campus would benefit more from a WAN in which all of the buildings could be linked together on the same network.
<br /><br />
<b>State</b><br />
A state is an even larger geographic area than a University Campus and would therefore require the use of a WAN. The cities within the state could all be linked on the same WAN.
<br /><br />
<b>Nation</b><br />
A nation would need to be connected by a WAN. The geographic area is too large to use a LAN. The states and their cities could all be connected to the same WAN, and the nation would also be able to connect itself to outside nations through use of the WAN.</p>
</body>
</html>