-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy path2HSE.html
More file actions
467 lines (435 loc) · 21.4 KB
/
Copy path2HSE.html
File metadata and controls
467 lines (435 loc) · 21.4 KB
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
<!DOCTYPE html>
<html lang="en"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
<title>Angold-4 Organization</title>
<!-- Using the latest rendering mode for IE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="../../../images/favicon.png" rel="icon">
<link rel="canonical" href=".">
<meta name="author" content="Angold Wang" />
<meta property="og:site_name" content="Angold-4" />
<!-- <meta property="og:type" content="article"/> -->
<meta property="og:title" content="Angold-4 Organization"/>
<meta property="og:url" content="."/>
<!-- Bootstrap -->
<link rel="stylesheet" href="../../../theme/css/bootstrap.flatly.min.css" type="text/css"/>
<link href="../../../theme/css/font-awesome.min.css" rel="stylesheet">
<!-- <link href="https://cdnjs.cloudflare.com/ajax/libs/typicons/2.0.9/typicons.min.css" rel="stylesheet"> -->
<link href="../../../theme/css/pygments/monokai.css" rel="stylesheet">
<link rel="stylesheet" href="../../../theme/css/style.css" type="text/css"/>
<style>
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
li {
font-size: 18px;
}
p {
font-size: 18px;
}
a {
font-size: 18px;
}
k
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script> -->
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="http://angold4.org" class="navbar-brand">
<img src="../../../images/logo.png" width="32"/> Angold4 </a>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li><a href="../../../about.html">About</a>
<li><a href="../../../blogs.html">Blogs</a>
<li><a href="../../../projects.html">Projects</a>
</ul>
<ul class="nav navbar-nav navbar-right">
<li> <a title="Youtube" href="https://www.youtube.com/channel/UC3ZAjh2LHhm-FrgxgBtgMzQ" target="_new"><i class="fa fa-youtube"></i> Youtube</a>
</li>
</div>
<!-- /.navbar-collapse -->
</div>
</div> <!-- /.navbar -->
<div class="container">
<div class="row">
<div class="col-lg-12">
<section id="content" class="body">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#operating-systerms-design-and-implementation-notes"
id="toc-operating-systerms-design-and-implementation-notes">Operating
Systerms Design and Implementation Notes</a></li>
<li><a href="#the-history-of-oprating-systermearly"
id="toc-the-history-of-oprating-systermearly">2. The History of Oprating
Systerm(Early)</a>
<ul>
<li><a href="#the-first-generation-194555-vacuum-tubes-and-plugboards"
id="toc-the-first-generation-194555-vacuum-tubes-and-plugboards">1. The
First Generation (1945–55) Vacuum Tubes and Plugboards</a></li>
<li><a
href="#the-second-generation-195565-transistors-and-batch-systems"
id="toc-the-second-generation-195565-transistors-and-batch-systems">2.
The Second Generation (1955–65) Transistors and Batch Systems</a>
<ul>
<li><a href="#the-third-generation-19651980-ics-and-multiprogramming"
id="toc-the-third-generation-19651980-ics-and-multiprogramming">3. The
Third Generation (1965–1980) ICs and Multiprogramming</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
<h3 id="operating-systerms-design-and-implementation-notes">Operating
Systerms Design and Implementation Notes</h3>
<h1 id="the-history-of-oprating-systermearly">2. The History of Oprating
Systerm(Early)</h1>
<h5 id="by-jiawei-wang">By Jiawei Wang</h5>
<p><br></p>
<!-- vim-markdown-toc GFM -->
<ul>
<li><a
href="#1-the-first-generation-194555-vacuum-tubes-and-plugboards">1. The
First Generation (1945–55) Vacuum Tubes and Plugboards</a></li>
<li><a
href="#2-the-second-generation-195565-transistors-and-batch-systems">2.
The Second Generation (1955–65) Transistors and Batch Systems</a>
<ul>
<li><a
href="#3-the-third-generation-19651980-ics-and-multiprogramming">3. The
Third Generation (1965–1980) ICs and Multiprogramming</a></li>
</ul></li>
</ul>
<!-- vim-markdown-toc -->
<p><img src="Sources/bbg.jpeg" alt="Charles Babbage" /><br>
<strong>Operating systems have been evolving through the
years.</strong><br> <strong>The first true digital computer was designed
by the English mathematician Charles Babbage (1792–1871).<br> Although
Babbage spent most of his life and for trying to build his ‘‘analytical
engine,’’ he never got it working properly because it was purely
mechanical, and the technology of his day could not produce the required
wheels, gears, and cogs to the high precision that he
needed.<br>Needless to say, the analytical engine did not have an
operating system.</strong><br></p>
<h2 id="the-first-generation-194555-vacuum-tubes-and-plugboards">1. The
First Generation (1945–55) Vacuum Tubes and Plugboards</h2>
<p><img src="Sources/VTP.jpg" alt="VTP" /><br> <strong>After Babbage’s
unsuccessful efforts, little progress was made in constructing digital
computers until World War II. Around the mid-1940s, Howard Aiken at
Harvard University, John von Neumann at the Institute for Advanced Study
in Princeton, J. Presper Eckert and John Mauchley at the University of
Pennsylvania, and Konrad Zuse in Germany, among others, all succeeded in
building calculating engines.</strong> <strong>The Calculating Engines
used mechanical relays but were very slow, with cycle times measured in
seconds.</strong><br><br> <strong>Then were replaced by vancuum tubes.
These machines were enormous, filling up entire rooms with tens of
thousands of vacuum tubes, but they were still millions of times slower
than even the cheapest personal computers available today.</strong></p>
<p><strong>In these early days, a single group of people designed,
built, programmed, operated, and maintained each machine. All
programming was done in absolute machine language, often by wiring up
plugboards to control the machine’s basic functions. At that time.
Programming languages were unknown (even assembly language was unknown).
Operating systems were unheard of!</strong></p>
<blockquote>
<p>The usual mode of operation was for the programmer to sign up for a
block of time on the signup sheet on the wall, then come down to the
machine room, insert his or her plugboard into the computer, and spend
the next few hours hoping that none of the 20,000 or so vacuum tubes
would burn out during the run. Virtually all the problems were
straightforward numerical calculations, such as grinding out tables of
sines, cosines, and logarithms.</p>
</blockquote>
<h2 id="the-second-generation-195565-transistors-and-batch-systems">2.
The Second Generation (1955–65) Transistors and Batch Systems</h2>
<p><img src="Sources/IBM7094.jpg" alt="IBM7094" /> <a
href="http://www.columbia.edu/cu/computinghistory/7094.html">IBM7094
from colunbia.edu</a><br> <strong>The introduction of the transistor in
the mid-1950s changed the picture radically.</strong><br> <strong>At
that time Computers became reliable enough that they could be
manufactured and sold to paying customers with the expectation that they
would continue to function long enough to get some useful work
done.</strong><br> <strong>And that is the first time, there was a clear
separation between designers, builders, operators, programmers, and
maintenance personnel.</strong><br> > <strong>These machines, now
called mainframes, were locked away in specially air-conditioned
computer rooms, with staffs of specially-trained professional operators
to run them. Only big corporations or major government agencies or
univer- sities could afford their multimillion dollar price tags. To run
a job (i.e., a pro- gram or set of programs), a programmer would first
write the program on paper (in FORTRAN or possibly even in assembly
language), then punch it on cards. He would then bring the card deck
down to the input room and hand it to one of the operators and go drink
coffee until the output was ready.</strong></p>
<blockquote>
<p><strong>When the computer finished whatever job it was currently
running, an operator would go over to the printer and tear off the
output and carry it over to the out- put room, so that the programmer
could collect it later. Then he would take one of the card decks that
had been brought from the input room and read it in. If the FORTRAN
compiler was needed, the operator would have to get it from a file
cabinet and read it in.</strong></p>
</blockquote>
<p><strong>Much computer time was wasted while operators were walking
around the machine room.</strong> <br> <strong>To save time and the
Computing sources(Computer is a high cost equipment). The solution
generally adopted was the <u>batch system</u></strong> <br> <strong>The
idea behind it was to collect a tray full of jobs in the input room and
then read them onto a magnetic tape using a small (relatively)
inexpensive computer, such as the IBM 1401, which was very good at
reading cards, copying tapes, and printing output, but not at all good
at numerical calculations. Other, much more expensive machines, such as
the IBM 7094, were used for the real computing.</strong> <br>
<strong>Here are the Process:</strong><br></p>
<p><img src="Sources/batch.png" alt="batch" /><br> > <strong>After
about an hour of collecting a batch of jobs, the tape was rewound and
brought into the machine room, where it was mounted on a tape drive. The
opera- tor then loaded a special program (the ancestor of today’s
operating system), which read the first job from tape and ran it. The
output was written onto a second tape, instead of being
printed.</strong></p>
<blockquote>
<p><strong>After each job finished, the operating system automatically
read the next job from the tape and began running it. When the whole
batch was done, the operator removed the input and output tapes,
replaced the input tape with the next batch, and brought the output tape
to a 1401 for printing off line (i.e., not connected to the main
computer).</strong> <br></p>
</blockquote>
<p><strong>To make a better understand. Let’s see more details of the
input job:</strong><br> + <strong>It started out with a $JOB card,
specifying the maximum run time in minutes, the account number to be
charged, and the programmer’s name.</strong> + <strong>Then came a
$FORTRAN card, telling the operating system to load the FORTRAN compiler
from the system tape. It was followed by the program to be
compiled.<br></strong> + <strong>Then a $LOAD card, directing the
operating system to load the object program just compiled. (Compiled
programs were often written on scratch tapes and had to be loaded
explicitly.)</strong><br> + <strong>Next came the $RUN card, telling the
operating system to run the program with the data following it.</strong>
+ <strong>Finally, the $END card marked the end of the job.</strong></p>
<figure>
<img src="Sources/FMS.png" alt="FMS" />
<figcaption aria-hidden="true">FMS</figcaption>
</figure>
<p><strong>These primitive control cards were the forerunners of modern
job control languages and command interpreters.</strong><br> <br></p>
<p><strong>Large second-generation computers were used mostly for
scientific and engineering calculations, such as solving the partial
differential equations that often occur in physics and engineering. They
were largely programmed in FORTRAN and assembly language. Typical
operating systems were FMS (the Fortran Monitor System) and IBSYS, IBM’s
operating system for the 7094.</strong> <br></p>
<h3 id="the-third-generation-19651980-ics-and-multiprogramming">3. The
Third Generation (1965–1980) ICs and Multiprogramming</h3>
<p><strong>By the early 1960s, most computer manufacturers had two
distinct, and totally incompatible, product lines. On the one hand there
were the word-oriented, large-scale scientific computers, such as the
7094, which were used for numerical calculations in science and
engineering. On the other hand, there were the character-oriented,
commercial computers, such as the 1401, which were widely used for tape
sorting and printing by banks and insurance companies.</strong><br></p>
<p><strong>Developing, maintaining, and marketing two completely
different product lines was an expensive proposition for the computer
manufacturers. In addition, many new computer customers initially needed
a small machine but later outgrew it and wanted a bigger machine that
had the same architectures as their current one so it could run all
their old programs, but faster.</strong><br></p>
<p><strong>The advent of System/360 means that computers in the world
have a common way of interacting. They all share the operating system
codenamed OS/360, and not all other products have replaced the
customized operating system. Applying a single operating system to the
entire series of products is the key to System/360’s success. And
because of that: Application-level compatibility (with some
restrictions) for System/360 software is maintained to the present day
with the System z mainframe servers.</strong> <br></p>
<p><img src="Sources/IBMSYS360M65.jpg" alt="IBMSYS360M65.jpg" /> <a
href="http://www.corestore.org">IBM Systerm 360 Model 65 upload by
Michael J.Ross</a></p>
<blockquote>
<p><strong>The development process of System/360 is regarded as the
biggest gamble in the history of computer development. In order to
develop System/360, a large computer, IBM decided to recruit more than
60,000 new employees and establish five new factories.</strong></p>
</blockquote>
<blockquote>
<p><strong>Gene Amdal is the chief architect of the system, and then the
project manager Frederick P. Brooks (Jr.) later wrote <a
href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month">“The
Mythical Man-Month: The Way of Software Project Management”</a> based on
the development experience of this project</strong></p>
</blockquote>
<blockquote>
<p><strong>The 360 was a series of software-compatible machines ranging
from 1401-sized to much more powerful than the 7094. The machines dif-
fered only in price and performance (maximum memory, processor speed,
number of I/O devices permitted, and so forth). Since all the machines
had the same architecture and instruction set, programs written for one
machine could run on all the others, at least in theory. Furthermore,
the 360 was designed to handle both scientific (i.e., numerical) and
commercial computing. Thus a single family of machines could satisfy the
needs of all customers. In subsequent years, IBM has come out with
compatible successors to the 360 line, using more modern technology,
known as the 370, 4300, 3080, 3090, and Z series.</strong></p>
</blockquote>
<p><br></p>
<p><strong>The 360 was the first major computer line to use
(small-scale) Integrated Circuits (ICs), thus providing a major
price/performance advantage over the second generation machines, which
were built up from individual transistors. It was an immediate success,
and the idea of a family of compatible computers was soon adopted by all
the other major manufacturers.</strong></p>
</section>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://angold4.org/OSDI/Chapter/Chapter1/2HSE.html"
this.page.identifier = "OSDI/Chapter/Chapter1/2HSE.html"
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://angold.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<footer>
<div class="well well-lg" id="footer-well">
<div class="container">
<div class="row">
<div class="col-xs-6">
<a href="https://angold4.org" title="Angold-4 Organization" class="image-link"><img src="../../../images/logo.png" class="cmudb-logo" /></a>
</div>
<div class="col-xs-6">
<p class="pull-right"><i class="fa fa-arrow-up"></i> <a href="#">Back to top</a></p>
</div>
</div>
</div>
</div>
</footer>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script src="../../../theme/js/bootstrap.min.js"></script>
<!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
<script src="../../../theme/js/respond.min.js"></script>
<!-- Fix scrolling issues to internal HREFs that get positioned behind navbar -->
<!-- http://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header -->
<script src="../../../theme/js/href_scroll.js"></script>
<!-- You know what this is and you know what he did to me... -->
<script src="../../../theme/js/tim-kraska-betrayed-me.js"></script>
</body>
</html>