+ All Categories
Home > Documents > ò § * r - Gotop

ò § * r - Gotop

Date post: 06-Jan-2022
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
37
0-3 作業系統跟電腦系統的運作原理有很密切的關係,只有透過對於作業系 統的了解才能真正認識電腦是如何工作的,一般的資訊專業人員都需要有這 方面的背景。所以本書在撰寫時試著從電腦運作、資源管理以及軟體層次設 計各方面來介紹作業系統的概念。 學習作業系統要先認識計算機的組織與結構,稍微了解一下電腦的硬體 架構,這是本書一開始的時候試著建立的背景知識。接下來就針對作業系 統所管理的主要資源逐一地介紹,包括處理元、記憶體、儲存設備與輸出入 作業。由於網路已經是電腦系統存在不可或缺的設施,所以我們也將作業系 統的概念延伸到分散式系統中。最後則以整體電腦系統的保護與安全來看看 如何讓電腦系統穩定地發揮功能。 一般人對於作業系統的使用都很熟悉,但是所接觸的作業系統多半 是市場上普及的產品,例如微軟公司的 Windows 作業系統,學習作業系 統的時候一定要透過各種作業系統來擴大自己的視野,所以本書附錄介紹 VMWare 軟體的使用,讓大家能更方便地在現有的電腦系統中去嘗試使用其 他種類的作業系統。另外有關於作業系統的執行緒 (thread) I/O 作業與分散 式系統,都有實際的 Java 範例。
Transcript
Page 1: ò § * r - Gotop

0-3

作業系統跟電腦系統的運作原理有很密切的關係,只有透過對於作業系

統的了解才能真正認識電腦是如何工作的,一般的資訊專業人員都需要有這

方面的背景。所以本書在撰寫時試著從電腦運作、資源管理以及軟體層次設

計各方面來介紹作業系統的概念。

學習作業系統要先認識計算機的組織與結構,稍微了解一下電腦的硬體

架構,這是本書一開始的時候試著建立的背景知識。接下來就針對作業系

統所管理的主要資源逐一地介紹,包括處理元、記憶體、儲存設備與輸出入

作業。由於網路已經是電腦系統存在不可或缺的設施,所以我們也將作業系

統的概念延伸到分散式系統中。最後則以整體電腦系統的保護與安全來看看

如何讓電腦系統穩定地發揮功能。

一般人對於作業系統的使用都很熟悉,但是所接觸的作業系統多半

是市場上普及的產品,例如微軟公司的 Windows 作業系統,學習作業系

統的時候一定要透過各種作業系統來擴大自己的視野,所以本書附錄介紹

VMWare 軟體的使用,讓大家能更方便地在現有的電腦系統中去嘗試使用其

他種類的作業系統。另外有關於作業系統的執行緒 (thread)、I/O 作業與分散

式系統,都有實際的 Java 範例。

Page 2: ò § * r - Gotop

0-4

各章後面所附的自我評量著重於學習後的回饋與深入專研,自學者可以

當做練習,老師在課堂上可以適時地鼓勵同學參與互動討論或是當作分組的

作業。另有題庫與 PowerPoint 教學投影片供老師們參考使用。

Page 3: ò § * r - Gotop

0-5

PART 1

Chapter 01 1.1 ........................................................................................................................................1-2

1.2 ....................................................................................................................................................1-3

1.2.1 ............................................................................................................... 1-41.2.2 ............................................................................................................... 1-51.2.3 (data) ................................................................................................. 1-71.2.4 ......................................................................................................................... 1-7

1.3 .........................................................................................................................................................1-8

1.3.1 ................................................................................................................................ 1-101.3.2 ................................................................................................................................ 1-101.3.3 ..................................................................................................................1-11

1.4 ............................................................................................................................................................1-12

1.4.1 ................................................................................................................................ 1-121.4.2 ............................................................................................................ 1-13

1.5 .................................................................................................................................................1-15

1.5.1 (Assemblers)....................................................................................................... 1-151.5.2 (Link) (Load) ..................................................................................... 1-161.5.3 (compiler) .............................................................................................................. 1-171.5.4 (operating system) .......................................................................................... 1-201.5.5 ...................................................................................................................... 1-20

Chapter 02 2.1 .........................................................................................................................................................2-2

2.1.1 ............................................................................................................... 2-32.1.1.1 1 (first generation, 1945-1955) 2-4

2.1.1.2 2 (second generation, 1955-1965) 2-4

2.1.1.3 3 (third generation, 1965-1980) 2-5

2.1.1.4 4 (fourth generation, 1980 ) 2-7

2.1.2 .........................................................................................................................2-82.1.3 .......................................................................................................... 2-92.1.4 ...................................................................................................................... 2-10

2.2 .................................................................................................................................................2-11

2.2.1 (batch system) ....................................................................................................2-112.2.2 (timesharing) ....................................................................................................... 2-122.2.3 ................................................................................................................. 2-122.2.4 ..................................................................................................................................... 2-132.2.5 (Embedded operating systems) .............................................. 2-14

2.2.5.1 2-15

2.2.5.2 (processors) 2-15

Page 4: ò § * r - Gotop

0-6

2.2.5.3 2-16

2.2.6 ............................................................................................................ 2-19

2.3 (virtual machines) ....................................................................................................................2-20

PART 2

Chapter 03 3.1 (process) ......................................................................................................................3-2

3.2 ...........................................................................3-6

3.2.1 UNIX ....................................................................................................................... 3-73.2.2 (system call) ........................................................................................................... 3-7

3.3 ............................................................................................................3-8

3.4 ...............................................................................................................................................................3-9

3.5 (system call) ................................................................................................................3-10

3.6 ............................................................................................................3-14

3.6.1 (multithreading) .................................................................................. 3-143.6.2 ........................................................................................................................... 3-163.6.3 ........................................................................................................................... 3-173.6.4 Windows 2000 ........................................................... 3-183.6.5 Linux ................................................................................ 3-19

Chapter 04 (Scheduling)4.1 (Scheduling) ...............................................................................................................................................4-2

4.1.1 ................................................................................................................................... 4-24.1.2 .........................................................................................................................4-34.1.3 (nonpreemptive) ........................................................................ 4-6

4.1.3.1 (FCFS, First-Come-First-Served) 4-6

4.1.3.2 (SJN, Shortest Job Next) 4-7

4.1.3.3 4-8

4.1.3.4 4-9

4.1.4 (preemptive) .................................................................................. 4-104.1.4.1 (Round Robin scheduling) 4-11

4.1.4.2 (multiple-level queues) 4-13

4.2 (multiple-processor scheduling) ................................................................4-13

4.3 .....................................................................................................................................4-13

4.3.1 (uniprocessor scheduling) ..................................................... 4-144.3.2 (response time) ................................................................................................. 4-164.3.3 (queuing system) ............................................................................................. 4-16

Page 5: ò § * r - Gotop

0-7

Chapter 05 (Synchronization)5.1 (Synchronization) ................................................................................5-2

5.1.1 (concurrency) ......................................................................................... 5-45.1.2 (critical section).................................................................................................... 5-55.1.3 ........................................................................................................................................5-55.1.4 ...................................................................................................................................5-75.1.5 ..................................................................................................... 5-9

5.1.5.1 5-9

5.1.5.2 (mutual exclusion) 5-9

5.1.5.3 Dekker’s 5-12

5.1.5.4 Peterson 5-14

5.2 ...........................................................................................................................................5-15

5.3 (semaphore) ............................................................................................................................................5-16

5.3.1 ...................................................................................................................... 5-175.3.1.1 5-17

5.3.1.2 5-17

5.3.1.3 - (producer-consumer problem) 5-18

5.3.1.4 (readers-writers problem) 5-19

5.3.2 ........................................................................................................................... 5-21

Chapter 06 (Deadlock)6.1 (Deadlock) .........................................................................................................................................6-2

6.1.1 .........................................................................................................................6-36.1.2 ...................................................................................................................................6-46.1.3 .........................................................................................................................6-5

6.2 (prevention) .....................................................................................................................6-7

6.3 (avoidance) ......................................................................................................................6-8

6.3.1 (Resource-Allocation-Graph algorithm) ...................... 6-86.3.2 (Banker’s algorithm) .................................................................................... 6-9

6.4 (detection) ................................................................................................................................6-11

6.4.1 .........................................................................................6-116.4.2 ........................................................................................ 6-12

6.5 (recovery) ..................................................................................................................................6-12

6.5.1 (process termination) .......................................................................... 6-126.5.2 (resource preemption) ............................................................................. 6-13

Chapter 07 7.1 (Synchronization) .....................................................................7-2

7.1.1 (shared variable) ........................................................................ 7-27.1.2 (semaphore) ....................................................................................... 7-57.1.3 (implementation) ....................................................................................... 7-7

Page 6: ò § * r - Gotop

0-8

7.2 (multiprocessors) .......................................................................................................7-9

7.3 .............................................................................................................................7-9

7.3.1 (AND synchronization) .................................................................................... 7-97.3.2 (monitor) ......................................................................................................................7-117.3.3 (IPC) .........................................................................................................7-117.3.4 (Event ordering) ...................................................................... 7-12

7.4 (threads) ...............................................................................................................................7-12

7.4.1 (Thread) ............................................................................ 7-147.4.1.1 Java 7-15

7.4.1.2 Java 7-15

7.4.1.3 Java 7-18

7.4.2 ................................................................................................ 7-197.4.3 ............................................................................................................... 7-21

PART 3 (memory management)

Chapter 08 8.1 ..............................................................................................................................................8-2

8.2 .............................................................................................................................8-3

8.2.1 ......................................................................................................................... 8-48.2.2 (memory addressing) ............................................................................. 8-68.2.3 (Cache Memory) ............................................................................................. 8-68.2.4 ..................................................................................................... 8-78.2.5 ....................................................................................................................8-8

8.3 .............................................................................................................................8-9

8.3.1 .......................................................................................................................8-118.3.1.1 8-13

8.3.1.2 (compile time) 8-15

8.3.1.3 (link time) 8-16

8.3.1.4 (load time) 8-16

8.3.1.5 8-17

8.3.2 ........................................................................................................................... 8-188.3.3 (dynamic address relocation) ................................................... 8-208.3.4 (swapping) ............................................................................................................ 8-21

Chapter 09 (virtual memory)9.1 (Virtual memory) .........................................................................................................9-3

9.1.1 ............................................................................................................... 9-59.1.2 .........................................................................................................................9-5

9.2 (segmentation) .......................................................................................9-6

9.2.1 .............................................................................................................................. 9-7

Page 7: ò § * r - Gotop

0-9

9.2.2 ..............................................................................................................................9-8

9.3 (paging) ..............................................................................................................9-9

9.3.1 (static paging algorithm) .................................................... 9-109.3.1.1 (fetch policy) 9-11

9.3.1.2 (demand paging) 9-11

9.3.1.3 (stack algorithms) 9-13

9.3.2 (dynamic paging algorithm) ............................................. 9-14

9.4 (segmented/demand paged memory allocation) .......9-17

PART 4 (storage management)

Chapter 10 (file system)10.1 ............................................................................................................................................................10-2

10.1.1 (file types) ..................................................................................................... 10-310.1.2 (file sharing) ................................................................................................ 10-4

10.2 ............................................................................................................................................................10-5

10.2.1 ............................................................................................................................. 10-510.2.2 ............................................................................................................................. 10-610.2.3 .................................................................................................... 10-6

10.3 (access methods) ..................................................................................10-8

10.3.1 ............................................................................................................................. 10-810.3.2 ................................................................................................................... 10-910.3.3 ..................................................................................................................... 10-1010.3.4 (inverted file) ............................................................................................... 10-10

10.4 (file system) ............................................................................................................................... 10-11

10.4.1 .......................................................................................................10-1110.4.2 .................................................................................. 10-12

10.5 ..................................................................................................................................10-13

10.5.1 (block management) ............................................................... 10-14

10.6 ..................................................................................................................................10-15

10.6.1 .......................................................................................................................... 10-1510.6.2 (access control) .......................................................................................... 10-15

10.7 (mount) ..........................................................................................................................10-16

10.7.1 .......................................................................................................................... 10-1610.7.2 .......................................................................................................................... 10-17

Chapter 11 11.1 .................................................................................................................................................................11-2

11.1.1 ....................................................................................................................................11-211.1.2 .........................................................................................................................11-4

Page 8: ò § * r - Gotop

0-10

11.1.3 ...............................................................................................................................11-411.1.4 (hard disk file system) ..................................................................11-611.1.5 .....................................................................................................11-7

11.2 ................................................................................................................................11-8

11.2.1 SSTF ............................................................................................................................11-811.2.2 FCFS ...........................................................................................................................11-911.2.3 SCAN ..........................................................................................................................11-911.2.4 LOOK .......................................................................................................................11-1011.2.5 .................................................................................................................11-10

11.3 .................................................................................................................................. 11-10

11.3.1 ......................................................................................................................11-1111.3.2 (boot) ................................................................................................................... 11-11

11.4 (swap space) ........................................................................................................... 11-12

11.5 ........................................................................................................................................ 11-12

11.6 .............................................................................................................................................. 11-15

11.7 ...................................................................................... 11-17

Chapter 12 12.1 .....................................................................................................................................12-2

12.1.1 I/O ........................................................................................................................... 12-212.1.2 ............................................................................................................................. 12-3

12.2 ....................................................................................................12-4

12.2.1 .................................................................................................................. 12-512.2.1.1 (Polling) 12-6

12.2.1.2. (Interrupts) 12-7

12.2.1.3 (DMA) 12-14

12.2.2 ................................................................................................................ 12-16

12.3 ..................................................................................................................12-18

12.3.1 I/O (Scheduling) ................................................................................................ 12-1912.3.2 (buffering) ....................................................................................................... 12-1912.3.3 (cache) .......................................................................................... 12-2012.3.4 (Spool) ......................................................................................................... 12-2012.3.5 .................................................................................. 12-20

12.4 I/O ..........................................................................................................12-21

12.5 (streams) ................................................................................................................................12-21

12.5.1 (stream) ............................................................................................. 12-2212.5.2 ............................................................................................ 12-2212.5.3 java.io.InputStream ....................................................................................... 12-2312.5.4 java.io.OutputStream ................................................................................... 12-2512.5.5 ................................................................................................. 12-2612.5.6 Java (stream) ........................................................................ 12-27

Page 9: ò § * r - Gotop

0-11

12.5.6.1 (filtered streams) 12-27

12.5.6.2 (character streams) 12-31

PART 5

Chapter 13 13.1 (distributed operating system) .........................................................13-2

13.1.1 (distributed system) ................................................................................ 13-313.1.2 ......................................................................................................... 13-313.1.3 .................................................................................................... 13-413.1.4 .................................................................................................... 13-513.1.5 ............................................................................................... 13-613.1.6 ..................................................................................... 13-8

13.2 ...........................................................................................................................................13-9

13.2.1 Novell Netware .......................................................................................................13-1113.2.2 Windows NT/2000 Windows 2008 Server ............................................. 13-1313.2.3 UNIX ................................................................................ 13-14

13.3 .......................................................................................................................13-15

13.3.1 ................................................................................................. 13-1613.3.2 (socket) ......................................................................................... 13-18

13.3.2.1 TCP/IP 13-18

13.3.2.2 13-20

13.3.2.3 13-20

13.3.3 (RPC Remote Procedure Calls) ......................................... 13-21

13.4 Java ..................................................................................................................................13-22

13.4.1 Client Server .............................................................................................. 13-2213.4.2 Java RMI ........................................................................... 13-28

13.5 Java RMI ......................................................................................................................................13-30

13.6 (messaging service) ........................................................13-33

Chapter 14 14.1 .................................................................................................................................................14-2

14.1.1 (naming) ......................................................................................................... 14-214.1.2 (remote file access)...................................................................... 14-314.1.3 (remote file service) .......................................................................... 14-4

14.2 ...........................................................................................................................................14-5

14.2.1 ............................................................................................................................. 14-614.2.1.1 14-7

14.2.1.2 14-7

14.2.2 .................................................................................................... 14-714.2.2.1 NFS 14-8

Page 10: ò § * r - Gotop

0-12

14.2.2.2 AFS 14-9

14.2.2.3 DCE 14-11

Chapter 15 15.1 .....................................................................................................................15-2

15.1.1 .............................................................................................................. 15-415.1.2 (Message passing) ....................................................................... 15-515.1.3 ......................................................................................................... 15-6

15.2 .................................................................................................................................................15-7

15.2.1 (happened-before relation) ..................................................... 15-715.2.2 ............................................................................................... 15-8

15.3 (mutual exclusion) ..............................................................................................................................15-8

15.3.1 ................................................................................................................... 15-815.3.2 ......................................................................................................... 15-915.3.3 (token-passing) ...................................................................... 15-10

15.4 (atomicity) ...................................................................................................................15-10

15.5 (concurrency control) .................................................................................. 15-11

15.5.1 (Clock synchronization) .....................................................................15-1115.5.2 (Mutual exclusion) ............................................................................................... 15-1215.5.3 (Transaction model) ....................................................................... 15-12

15.6 (deadlock handling) ......................................................................................15-13

15.7 ........................................................................................................................15-13

15.8 CORBA ...................................................................................................15-14

15.8.1 CORBA ........................................................................................................ 15-1415.8.1.1 CORBA 15-15

15.8.1.2 CORBA 15-16

15.8.2 CORBA ........................................................................................................ 15-1715.8.2.1 IDL 15-17

15.8.2.2 CORBA 15-21

15.8.3 IDL(interface definition language) ............................................................ 15-2315.8.3.1 IDL (data types) 15-23

15.8.3.2 (modules) (interfaces) 15-24

15.8.4 IIOP(Internet Inter-ORB Protocol) .................... 15-2415.8.4.1 RMI-IIOP 15-25

15.8.4.2 CORBA RMI-IIOP 15-30

PART 6

Chapter 16 16.1 (Protection) .......................................................................................................16-2

Page 11: ò § * r - Gotop

0-13

16.1.1 ............................................................................................................................. 16-216.1.2 ............................................................................................................................. 16-3

16.2 .................................................................................................................................................16-3

16.2.1 ................................................................................................................... 16-416.2.2 (protection domain) ...................................................................... 16-416.2.3 .................................................................................................... 16-6

16.3 (access control) .........................................................................................................................16-7

16.3.1 .............................................................................................................. 16-716.3.2 (identification) (authentication) .............................................. 16-9

16.3.2.1 16-10

16.3.2.2 (authorization) 16-13

16.3.3 ................................................................................................................ 16-1516.3.3.1 (discretionary) 16-16

16.3.3.2 (mandatory) 16-16

16.3.3.3 (nondiscretionary) 16-16

16.3.4 ................................................................................................................ 16-1716.3.4.1 (rule-based access control) 16-17

16.3.4.2 (constrained user interface) 16-17

16.3.4.3 (access control matrix) 16-17

16.3.4.4 (content-dependent access control) 16-18

16.3.4.5 (context-dependent access control) 16-18

16.3.5 ................................................................................................................ 16-1816.3.5.1 16-18

16.3.5.2 16-19

16.3.5.3 16-21

16.3.5.4 (Accountability) 16-22

16.3.5.5 16-23

16.4 .......................................................................................................................16-25

16.4.1 (access matrix) ........................................................................ 16-2516.4.2 ........................................................................................................... 16-25

16.5 .......................................................................................................................16-27

16.5.1 (dictionary attack) ...................................................................................... 16-2716.5.2 (brute force attack) ................................................................................... 16-2716.5.3 (spoofing at logon) ..................................................................... 16-28

Chapter 17 17.1 .................................................................................................................................................17-2

17.1.1 ........................................................................................................................ 17-217.1.2 (Network Security) ....................................................................................... 17-317.1.3 (Network Access Security Model) ............................. 17-417.1.4 .................................................................................................................................. 17-5

17.2 (malware) ........................................................................................................................................17-6

17.2.1 ................................................................................................................... 17-7

Page 12: ò § * r - Gotop

0-14

17.2.2 ................................................................................................................... 17-8

17.3 .................................................................................................................................. 17-11

17.3.1 (monitoring) ...............................................................................................17-1117.3.2 (intrusion detection) ................................................................................. 17-1217.3.3 (intrusion prevention systems) ................................................ 17-12

17.4 (cryptography) .......................................................................17-13

17.4.1 ........................................................................................................... 17-1317.4.2 ...................................................................................................... 17-1417.4.3 (Authentication) ............................................. 17-1517.4.4 ? ................................................................................................................. 17-1617.4.5 RSA (RSA encryption) .................................................................................. 17-16

17.5 (firewall) ..............................................................................................................................................17-18

PART 7

Chapter 18 18.1 ................................................................................................................................18-2

18.1.1 (monolithic) ........................................................................................ 18-518.1.2 (modular design) ................................................................................. 18-618.1.3 (extensible nucleus) ................................................................ 18-618.1.4 ........................................................................................................................ 18-8

18.2 .....................................................................................................................................18-9

18.2.1 (NOS, Network Operating System) ......................................... 18-918.2.2 (DOS, Distributed Operating System)...................... 18-10

18.3 ..............................................................................................................................................18-10

18.3.1 .................................................................................................................18-1118.3.2 ................................................................................................................ 18-1218.3.3 ...................................................................................................... 18-13

18.3.3.1 (large address space operating systems) 18-13

18.3.3.2 18-13

18.3.3.3 18-14

18.3.3.4 18-14

18.3.3.5 (embedded systems) 18-14

18.4 ..............................................................................................................................................................18-15

18.4.1 (real-time systems) ................................................................................... 18-1518.4.2 (multimedia systems) ......................................................................... 18-16

Chapter 19 19.1 Windows NT ............................................................................................................................................19-2

19.1.1 NT ................................................................................................................................ 19-219.1.2 NT ...................................................................................................................... 19-3

Page 13: ò § * r - Gotop

0-15

19.1.3 NT ...................................................................................................................... 19-419.1.3.1 (HAL, Hardware abstraction layer) 19-4

19.1.3.2 NT (kernel) 19-5

19.1.3.3 NT Executive 19-6

19.1.3.4 (Environment subsystem) 19-8

19.1.4 NT (file system) .......................................................................................... 19-919.1.5 NT ...................................................................................................................... 19-919.1.6 NT ......................................................................................................... 19-10

19.2 UNIX ................................................................................................................................ 19-11

19.2.1 UNIX ...............................................................................................................19-1119.2.2 Linux ................................................................................................................... 19-12

19.3 ..................................................................................................................................19-12

19.3.1 Choices ........................................................................................ 19-1219.3.2 Mach ................................................................................................................... 19-1419.3.3 CHORUS ......................................................................................................... 19-16

Appendixe A VMWareA-1 (virtual machines) .....................................................................................................A-3

A-2 VMWare .........................................................................................................................................................A-4

A-3 VMWare Server ..................................................................................................................................A-9

A-4 VMWare ...................................................................................................................................................A-9

A-5 VMWare ................................................................................................................................................ A-10

Appendixe B

Appendixe C

Page 14: ò § * r - Gotop

PART 1Chapter 1

Chapter 2

Page 15: ò § * r - Gotop

2.1 作業系統簡介

2.1.1 作業系統發展的歷史

2.1.2 作業系統的設計

2.1.3 作業系統功能上的組織

2.1.4 作業系統的實作

2.2 作業系統的分類

2.2.1 批次系統 (batch system)

2.2.2 分時 (timesharing)系統

2.2.3 個人電腦作業系統

2.2.4 即時系統

2.2.5 嵌入式作業系統 (Embedded operating systems)

2.2.6 其他種類的作業系統

2.3 虛擬機器 (virtual machines)

02

Page 16: ò § * r - Gotop

2-2

人的身體要靠人腦的支配來行動,人的感知可以從周圍

的環境取得資訊,經過人腦處理之後表現在外在的行為上。

電腦系統跟人類有點像,透過周邊的設備取得資料,經過軟

體系統的處理與判斷,將有用的資訊輸出。這裡的軟體系統

所指的主要就是電腦的作業系統,所以常有人說:「作業系統

是一部電腦的靈魂」。

作業系統 (operating system) 的主要功能是管理電腦的

軟體與硬體資源,不管是那一種硬體,都需要透過作業系統

的功能,才能夠正常地工作,軟體也需要建立在作業系統的

基礎上。作業系統也是使用者與電腦系統之間溝通的橋樑。

2.1

一般人都是作業系統的使用者,接觸到的是作業系統提供的介面與表現出來的功

能,探討作業系統的原理時,我們是從系統程式設計的觀點來看作業系統的特徵。通常

一個作業系統的功能包括了下面幾項 :

1. (processor management)

CPU

2. (memory management)

3. (file management)

4. (device management)

圖 2-1 畫出作業系統的主要成員,我們需要這些軟體成員來負責上述的管理工作,

其中使用者的指令介面 (user command interface) 是使用者與作業系統溝通的管道,一

般的作業系統都會提供類似的介面給使用者。

Page 17: ò § * r - Gotop

2-3

02

圖2-1 作業系統的主要成員 (Flynn 2001)

作業系統的主要成員之間必須合作才能完成整體的功能,假設使用者輸入一個指

令,開始執行一個程式,device manager 會從鍵盤收到電子訊號,將按鍵轉成指令,

把指令送給 user command interface,然後交由 processor manager 處理。Processor

ma nager 產生一個確認的訊息到螢幕上,讓使用者知道指令在處理中,processor

manager 在處理指令的過程中要先確定程式是在記憶體中還是在磁碟上,若是程式在

磁碟上,file manager 先計算檔案的位置,通知 device manager 把檔案送給 memory

manager,由 memory manager 分配適當的記憶體空間來放置程式。

一旦程式載入到記憶體中,開始由 processor manager 執行以後,memory manager

還是要持續監控記憶體使用的狀況。程式執行完成後,processor manager 會先得知,

透過 device manager 將完成的訊息呈現在螢幕上。從上面這個例子可以大致體驗作業

系統主要成員的合作情形。

2.1.1

作業系統跟電腦的結構關係密切,所以每個時期的電腦所使用的作業系統

大致上就代表著作業系統發展的歷史。最早的數位電腦由英國的數學家 C h a r le s

Babbage(1792-1871) 所設計。只是當時的技術還沒有辦法做到使用作業系統的程度,但

是 Babbage 已經體認到軟體的必要性,因此雇用了 Ada Lovelace,算是世界上第 1 位程

式設計師 (programmer) ,程式語言 Ada 就是以 Ada Lovelace 來命名的。圖 2-2 顯示

Babbage 當初創造的 difference engine。

Page 18: ò § * r - Gotop

2-4

圖2-2 Babbage的difference engine (資料來源 : www.sciencemuseum.org.uk)

2.1.1.1 1 (first generation, 1945-1955)

Babbage 所設計的電腦並沒有成功地運作,到了 1940 年代中才開始有一些成功

的例子,像哈佛大學的 Howard AikenPrinceton 的 John von Neumann、賓州大學的

J. Presper Eckert 與 William Mauchley,以及德國的 Konrad Zuse 等人所建立的運算機

器。當初所用的機械式的裝置得到的系統週期 (cycle times) 是以秒來計算的,後來改用

真空管 (vacuum tubes) ,機器非常龐大。當時的

程式設計是在機器語言 (machine language) 的層

次上,而且還沒有程式語言與作業系統的概念,

1950 年代初期使用打孔卡片 (punched cards) ,

輸入比較方便一點,但是仍然跟今日的電腦相去

甚遠。

2.1.1.2 2 (second generation, 1955-1965)

1950 年代中期開始使用電晶體 (transistor) ,這對電腦的發展產生了很大的影響。

電腦可以穩定地發揮功能,而且在作業上開始有適當的分工。這個時期的代表是大型

主機 (mainframes) ,安裝在空調機房內由專業的人員維護與操作,只有大型的組織與

企業才有辦法購置使用。使用者通常要把程式打在有孔的卡片上,利用讀卡機輸入執

行,然後等待輸出的結果。由於機器成本昂貴,必須充分運用,所以開始有人想到批次

(batch) 作業的方式,也就是先用一台比較便宜的電腦來負責讀取使用者的輸入,儲存

到磁帶上,然後由磁帶將使用者的程式交給電腦來處理。

打孔卡片(punched cards)

Page 19: ò § * r - Gotop

2-5

02處理磁帶上的程式需要先載入一個程式到 mainframe 上,這就是今日作業系統的前

身,這個程式依序讀入磁帶上的 job,完成後將輸出寫到另一個磁帶上,然後再處理下

一個 job。輸出的磁帶可以再拿到另外一台小型的電腦上進行列印。圖 2-3 顯示一個批

次系統的輸入工作,一開始有一張 $JOB 的卡片,指明帳號的名稱,所以能分出來是誰

的,接下來的卡片上有 $FORTRAN 的指令,告訴作業系統要載入 FORTRAN 語言的

編譯程式 (compiler),接下來的卡片上含有需要編譯的 FORTRAN 程式。

FORTR AN 程式後面跟著 $LOA D 卡片,指示作業系統載入編譯 FORTR AN

程式得到的目標程式碼,接下來的 $RU N 卡片要求作業系統使用隨後的資料執行

FORTRAN 程式。最後的 $END 卡片標示出輸入工作的結尾。這些控制卡上的指令後

來演化成工作控制語言 (JCL, job control language)。第 2 代的大型電腦多半用來進行科

學與工程的運算,常使用組合語言或 FORTRAN 語言來撰寫程式。典型的作業系統有

FMS(Fortran Monitor System) 與 IBSYS,IBSYS 是 IBM 7094 電腦使用的作業系統。

圖2-3 讀卡作業的時代

2.1.1.3 3 (third generation, 1965-1980)

1960 年代初期,電腦廠商致力於兩大類的產品製

造,一種是科學或工程用的電腦,需要進行大量的運

算,另外一種是商業應用的電腦,主要的用途是資料處

理。但是把電腦的製造分成這兩大類很不經濟,IBM

推出的 System/360 解決了這樣的問題,既能做科學運

算,也適合商業應用。IBM 有陸續推出類似的機種,

包括 370、4300、3080 與 3090 系列等。 IBM System 360 (資料來源:IBM)

Page 20: ò § * r - Gotop

2-6

I B M 的 O S / 3 6 0 是這一時期的重要發展,最重要的技術之一是多工

(multiprogramming) 的觀念,主要的動機是希望能避免 CPU 閒置。所採用的方法是

將記憶體分割,每塊分割上有不同的工作 (job),假如有工作在等待輸出輸入的作業,

則其他的工作就可以使用 CPU,如此一來,只要記憶體中持續有工作存在,CPU 就

不會空閒。另外一個第 3 代作業系統的特色是將卡片上的工作讀到磁碟上,所以一

旦有工作完成,作業系統就可以很快地從磁碟上載入下一個工作,這樣的功能稱為

spooling(Simultaneous Peripheral Operation On Line)。

雖然有多工的能力,對於使用者來說,很可能執行程式時還是需要等待很久,尤其

是好不容易得到結構卻發現有一行程式錯誤,又要花費一次等待的時間來測試修正以

後的程式。這時候開始產生分時 (timesharing) 的概念,簡單地說,就是把 CPU 的使

用時間分割,使用者輪流使用 CPU,這樣每個使用者都會得到一些回應,感覺上就沒

有等待那麼久了。MIT 發展的 CTSS(compatible time sharing system) 是第 1 個比較完

整的分時系統,隨後的 MULTICS(MULTiplexed Information and Computing Service)

雖然並沒有普及,但是卻對後來的作業系統產生了深遠的影響,圖 2-4 顯示 MIT 的

Multics 網站。

圖2- 4 MIT的Multics網站(資料來源 : www.mit.edu)

迷你電腦 (minicomputer) 也是第 3 代的發展,像 1961 年 DEC PDP-1,以及發展

到後來的 PDP-11,可能很多人都還聽過。UNIX 作業系統也差不多是在這時候開始發展

的,源頭是 Ken Thompson 在 PDP-7 上開發的單人版 Multics 系統。UNIX 有兩個主

要的版本,即 AT&T 的 System V 與美國加州 Berkeley 大學的 BSD(Berkeley Software

Distribution)。IEEE 後來定義了 UNIX 的標準,稱為 POSIX。

Page 21: ò § * r - Gotop

2-7

022.1.1.4 4 (fourth generation, 1980 )

大型積體電路 (LSI, large scale integration) 的發展促成了個人電腦的製造,以

架構來說,個人電腦跟之前的電腦差不多,但是價格上個人電腦要便宜多了 ! 1974

年 Intel 公司推出 8080 的 8 位元 CPU,當初 Gary Kildall 設計了一個在磁碟上的

作業系統,叫做 CP/M(control program for microcomputers)。1980 年以後,IBM

設計出個人電腦,採用 DOS(disk operating system) 為作業系統,由 Microsoft 公

司改寫成 MS-DOS。1983 年 IBM 推出使用 Intel 80286 CPU 的 IBM PC/AT 個

人電腦,使 MS-DOS 的基礎更穩固。CP/M、MS-DOS 與當時的一些作業系統都是

以指令為主的文字介面,在 1960 年代,Doug Engelbar t 發明了圖型化使用者介面

(GUI, graphical user interface) 的技術,後來由 Xerox PARC 所採用。

Apple 電腦的共同創造者 Steve Jobs 在 PARC 看到 GUI 的技術以後,成功地發

展出 Apple Macintosh,主要的原因在於使用者介面的親和性。圖 2-5 顯示的網站上

有蘋果電腦發展的歷史。Microsoft 公司在發展 MS-DOS 之後的作業系統版本時深受

Apple Macintosh 的影響,1985 年到 1995 年之間 Microsoft Windows 作業系統建立在

MS-DOS 之上,支援圖型化使用者介面。Microsoft Windows NT 與傳統的 Microsoft

Windows 的版本是相容的,但是整個作業系統的核心是完全重寫過的,目前大家看到的

Windows 2003 server 也是從 Windows NT 發展過來的。

圖2-5 Apple Macintosh (資料來源 : www.apple-history.com)

Page 22: ò § * r - Gotop

2-8

UNIX 作業系統依然持續地發展,UNIX 的 X windows 也是一種圖型化使用者介

面。1980 年代中期開始有網路作業系統 (network operating system) 與分散式作業系統

(distributed operating system) 的發展,這跟網路環境的普及有關,系統本身跟傳統的作

業系統有很多相似之處,只是多了網路以及潛在的多處理器的硬體架構。

2.1.2

簡單地說,作業系統替電腦的各種資源提供了抽象化的介面,讓這些資源的使用與

管理大為簡化。所謂的抽象化 (abstraction) 是指以系統化的方式來描述與表示作業系

統的特徵。處理元可以看成是處理器與記憶體在運作時的抽象化特徵 ,檔案則是各種

儲存裝置的抽象化代表。其他的各種業系統的資源也都代表著某些電腦實際組成的抽

象化。

透過作業系統我們可以完成那些工作呢 ? 從應用層面來看,我們可以在作業系統中

執行各種程式,處理檔案,同時列印報表與文件。從系統層面來看,作業系統提供了產

生與刪除處理元的機制 ,以及請求使用資源與釋回資源使用權的程序,為了達到系統運

作的協調性,作業系統要掌控處理元之間的交互作用,提供資源管理的功能。在資源的

分配與共用方面,常會聽到兩個名詞 :

1. (time-multiplexed)

CPU

2. (space-multiplexed)

Page 23: ò § * r - Gotop

2-9

02在作業系統的設計上,有些經常會考慮到的因素 : 定義抽象化 (abstractions)、支援

基本操作 (primitive operations)、孤立性 (isolation) 與管理硬體。所謂的孤立性是指作

業系統要讓所管理的物件之間保持距離,例如很多使用者可以同時登入 (login) 一個作

業系統,但是每個使用者都有自己的空間,不會彼此產生干擾。

2.1.3

圖 2-6 把圖 2-1 的結構重新畫一遍,這一次把作業系統所管理的資源也標示出

來,從圖裡頭可以看到那些資源由那一種功能來管理,從這種方式可以描繪出作業系統

功能上的組織。圖 2-7 把軟體與硬體分開,同樣可以看到作業系統各組成所扮演的角

色,另外一個現象是這些組成之間的關係密切,彼此有許多必要的互動,所以作業系統

在設計上常有所謂的核心 (kernel) 設計,其實就是把作業系統的主要功能集中起來,做

更精密的設計。

圖2-6 作業系統所管理的資源

圖2-7 作業系統的組織

Page 24: ò § * r - Gotop

2-10

2.1.4

作業系統的實作 (implementation) 是指實際把作業系統寫出來,作業系統是大型的

系統程式,要寫出一個作業系統,所需要的理論知識和程式撰寫技巧都非常深入,不是

一般人有能力獨自完成的,不過,我們倒是可以從前人的經驗中體驗一下作業系統的實

作。實作的過程中有 3 個很重要的因素 :

1. (processor mode) CPU

CPU

2. (kernel design)

supervisor mode

3. kernel

(system call) (message passing)

Page 25: ò § * r - Gotop

2-11

02

2.2

雖然我們可以簡要地說出作業系統的功能,不同種類的作業系統還是有一些顯著的

差異,下面介紹幾種較常見或是比較特殊的作業系統。了解這些不同類別的作業系統以

後,接下來就可以判斷平時常見的作業系統屬於那一種類別了。

2.2.1 (batch system)

早期的大型電腦使用讀卡機 (card reader),使用者把程式與資料打到有孔卡中,由

操作員依序地把一份一份的程式與資料送到讀卡機讀入電腦中執行,由於電腦的處理速

度遠超過讀卡機的機械速度,CPU 經常處於閒置的狀態,作業系統的主要工作是安排

程式依序執行到結束的過程,這種環境稱為批次系統 (batch system)。批次處理有什麼

好處 ? 簡單地說,批次系統的設計很單純,算得上是一種優點,但是並不符合後來越來

越複雜的要求。

磁碟儲存的技術引入之後,很多程式可以同時放在磁碟上,這時候那些程式能被移

入主記憶體等待執行,就得由作業系統來做工作排程 (job scheduling),至於主記憶體中

的那個程式可到 CPU 中執行,則由 CPU 排程 (CPU scheduling) 來決定。如此一來,

CPU 就會比較忙了,因為很多程式都一起等待執行,這種狀況可用圖 2-8 來描述,也稱

為多重程式處理 (multiprogramming) 或多工,能提升 CPU 的使用效率。

在多個程式同時執

行的情況下,作業系統必

須做好協調的工作,避免

資源使用上的衝突,例如

磁碟的使用、記憶體的

管理、處理元的排程等,

所以多重程式處理的批次

系統 (multi-programmed

batch system) 引伸出很多

今日作業系統的主要功能。

圖2-8 多重程式處理

Page 26: ò § * r - Gotop

2-12

2.2.2 (timesharing)

批次系統並未讓使用者與電腦有直接互動的機會,對於使用者來說,只能等待程

式跑出結果來,萬一有錯,只好修正以後重新再來一遍,我們現在常用的視窗作業系統

是容許互動的,這是分時系統 (timesharing system) 的由來,分時的意思是把 CPU 的

時間切割,使 CPU 不會被一個程式拖得太久,對於所有等待的程式來說,大家可以一

起邁向完成的目標,對於使用者來說,也不致枯等太久得不到回應。分時系統具有多工

(multitasking) 的能力,雖然一般電腦的 CPU 只有一個,但在分時的效果下,好像很多

程式都一起同時進行中。

從多重程式、分時到多工的觀念,似乎使用者越來越輕鬆了,這是因為作業系統背負了

更多的責任,由於主記憶體的空間有限,程式有可能暫時要移出主記憶體,為了容納更

多的程式,有人發展出虛擬記憶體 (virtual memory)的技術,讓磁碟的部分空間當成主

記憶體來用。這些新的功能都使作業系統變得更複雜。其實分時系統的觀念早在 1960

年代就有了,但是真正在作業系統中實現約晚了 10年。

2.2.3

個人電腦約在 1970 年代出現,然後逐漸普及,之前在大型電腦上發展的作業系

統很容易移植到個人電腦的平台上,從分時系統的角度來看,一台電腦可供多人使用

(multi-user),而且可以同時執行數個程式,也就是多工的能力,但早期個人電腦並沒有

足夠的效能來支援多人多工 (multi-user, multitasking) 的環境,直到 1980 年代,UNIX

系統在個人電腦平台上逐漸成熟以後,其他的作業系統像 Microsoft Windows、IBM

OS/2 等才把多人多工的能力建立起來,UNIX 在一開始的設計中就是以多人多工的環

境為主,一向以穩定著稱,現在個人電腦平台上也可以使用 UNIX 系統,例如各種版本

的 Linux 作業系統。微軟的 Windows 作業系統經過多年的改版,目前個人用的版本是

Windows Vista。

Page 27: ò § * r - Gotop

2-13

022.2.4

有些作業系統的功能是比較特殊的,只適用於某些場合,例如即時系統 (real-time

system),電腦必須在時控條件 (time constraints) 容許的範圍內完成工作,否則可能會導

致難以控制的後果。圖 2-9 畫出電腦在一個即時系統中扮演的角色,感應器從現場得到

資料送往電腦進行分析,然後準備送往現場的控制訊號。即時系統有很多實際的應用,

例如工業應用中的控制系統,精密的國防武器系統等。所謂的「即時」在系統上又可分

成兩大類:

1. (hard real-time)

2. (soft real-time)

透過糖尿病患體內葡萄糖含量的即時監測來控制因素林( i n s u l i n )的注射,需要感測器以及軟硬體系統的搭配。 (資料來源:Medtronic公司的產品,www.minimed.com)

Page 28: ò § * r - Gotop

2-14

資料來源:content.answers.com以及Adidas-Salomon AG。愛迪達公司生產的球鞋下方裝設的嵌入式系統可以偵測鞋

底與地面之間的壓力,然後調整氣墊的強

度,讓使用者隨時維持在最舒服的狀態。

圖2-9 即時系統扮演的角色

軟性即時系統的功能比較容易加入現有的作業系統裡頭,我們可以在 Windows NT

或 UNIX 等系統中發現支援軟性即時的功能,只是這些功能和硬性即時的要求是有一

段距離的。

2.2.5 (Embedded operating systems)

嵌入式系統 (embedded systems) 早期比較常

見於一些工業用途的設備中,特別是有即時 (real-

time) 需求的應用。近年來逐漸運用於資訊家電

中,不但應用的領域擴大了,發展也更為迅速。

一般的可攜式裝置與網路裝置,有很多都使用了

嵌入式系統,有穩定而且尺寸小的特性,能在面

積極小的元件上完成特定的功能。

Page 29: ò § * r - Gotop

2-15

022.2.5.1

嵌入式系統都會包含可編程的電腦 (programmable computer) ,但是要注意嵌入式

系統並不是一般用途的 (general-purpose) 電腦,比較常見的情況是電子設備中含有類似

於 micro-processor 或 micro-controller 的電腦,這種做法的目的是簡化系統的設計,

同時增加彈性。以圖 2-10 的數位相機架構為例,裡頭就有 CPU,而且跟電腦的架構有

諸多相似之處。大家都有看過數位相機,應該知道數位相機不大,所以嵌入式系統當然

就無法像一般的電腦那麼大。

圖2-10 數位相機的架構方塊圖

2.2.5.2 (processors)

嵌入式系統存在於很多設備中,全世界所生產的微處理器有 90% 使用於嵌入式系

統,越來越多家用設備內含嵌入式系統,嵌入式系統可以配合各種應用的需求與特徵來

讓設計最適化 (optimize),也就是說,既然嵌入式系統不是一般的電腦,我們可以為特定

的功能做更專門合用的設計。也因為如此,嵌入式系統在設計上常需要選擇所使用的處理

器,然後決定開發的語言與工具。我們下面就來看看有那些嵌入式系統能採用的處理器。

x86 系列的中央處理器 (CPU) 從 386 開始,由 Intel 公司於西元 1985 年推出,隨

後發展出 486、Pentium 等後代的處理器,這一系列的 CPU 與 AMD 公司生產的 CPU

是相容的,都以 x86 系列的 CPU 來稱呼。後來有人把傳統的 PC 功能與 386 系統的

處理器結合,產生所謂的 SoC(Syetm-on-Chip)。雖然 x86 系列的 CPU 相當普及,不過

由於複雜性與成本的因素,並沒有在嵌入式系統的市場上占有很大的比例,設計者反而

偏好 ARM、MIPS 與 PowerPC 等其他的處理器。

Page 30: ò § * r - Gotop

2-16

ARM 代表 Advanced RISC Machine,是由 ARM Holdings 公司發展的處理器系

列,這個公司並不直接生產處理器,而是依照客戶的需求在 ARM 處理器的核心下設

計處理器,然後收取設計的使用版權費用。所有的 ARM 處理器都使用一樣的 ARM

指令集 (instruction set) 。ARM 的架構在很多應用領域中廣為採用,Intel、Samsung

與 Toshiba 等公司都有生產 ARM 的 CPU。除了 x86 系列與 ARM 的處理器以外,

PowerPC、MIPS、Hitachi SuperH 與 Motorola 68000 等也都是有名的處理器架構。

2.2.5.3

隨著軟體與硬體技術的進步,嵌入式系統也變得越來越複雜,在設計上要同時考慮

所使用的軟硬體,假如應用的需求真的就是要一種作業系統,則所發展的就是所謂的嵌

入式作業系統 (embedded operating system),過去多數的嵌入式系統都運用於即時系統

(real-time systems) 中,即時系統對於外來的輸入刺激必須在指定的時限之內回應,即

時系統的正常運作不但跟系統的邏輯有關,也跟時間有關,這是和其他的應用系統比較

時主要的差異。嵌入式即時系統可以分成以下幾種 :

1. (hard real-time)

(flight control system)

2. (soft real-time)

3. (real real-time)

(missile guidance system)

4. (firm real-time)

嵌入式系統在很多方面都跟作業系統有相似的特徵,例如並行 (concurrency) 、多工

(multi-tasking)、輸入與輸出等,因此在設計上跟一般的電腦系統有諸多相似之處,只不

過嵌入式系統要特別跟應用的需求配合,我們可以把嵌入式系統的應用分成兩大類 :

1. (low-end)

2. (high-end)

Page 31: ò § * r - Gotop

2-17

02從嵌入式系統的發展歷史可以大致看出從過去到現在的趨勢,1970 年代早期 Intel

4004 是最早的微處理器,1972 年 HP-35 計算機使用數個晶片 (chips) 來製造出一個微

處理器。1970 年代也開始將微處理器運用於汽車的引擎控制,包括燃料與空氣的混合

控制等功能。隨後有微控制器 (microcontroller) 的發展,例如 I/O 設備。數位訊號處

理器 (DSP,digital signal processor) 特別將微處理器設計用來做數位訊號的處理,包括

8-bit、16-bit 與 32-bit word size 的微處理器。嵌入式系統也出現在火星登陸車的設計裡

頭,常見的個人數位助理 (PDA) 中有 CPU 與記憶體,同時安裝了嵌入式的作業系統。

圖 2-11 顯示 Motorola i1000Plus iDEN 的數位電話,裡頭就有 Motorola 32-bit

MCORE 處理器,其他的數位電話當然也有類似的設計,不過我們都知道手機的用途跟

電腦是不同的,因此嵌入式系統在這樣的設備中可以就偏重的功能進行一些比較特定的

設計。

圖 2-12 顯示 Vendo V-MAX 720 的飲料自動販賣機,裡面有 8-bit Motorola

68HC11 的 microcontroller,也算是一種嵌入式系統。

圖2-11 Motorola i1000Plus (資料來源 : www.motorola.com)

圖2-12飲料自動販賣機 (資料來源 : www.vendweb.com)

有的家用電器,例如 DVD player,就含有 32-bit 的 RISC 處理器,圖 2-13 顯示

的機器狗 AIBO ERS 110 中含有 64-bit MIPS RISC 處理器。圖 2-14 中 IBM 的 Linux

wrist watch 中含有 32-bit ARM RISC 處理器。

Page 32: ò § * r - Gotop

2-18

圖2-14 IBM的Linux wrist watch圖2-13 機器狗

圖 2-15 顯示火星 (Mars) 登陸車 ROVER,裡面有 Intel 80C85 8-bit 的微處理器。

從各種嵌入式系統的應用實例,我們可以想像到需求的變化很大,在高階的應用中,嵌

入式系統必須非常地穩定與安全,嚴格地滿足回應的時限。

圖2-15 火星登陸車ROVER

嵌入式系統是涵蓋範圍相當廣泛的領域,包括軟體與硬體的發展,從作業系統的觀

點來看,未來有些家電或是隨身的電子器具可能都會含有一個小型的作業系統,不但跟

傳統的作業系統有很大的差異,而且彼此之間可能都互不相同,因為必須配合各種設備

本身的特性與需求來設計。由於嵌入式系統不大,會執行的應用也可能很固定,所以在

設計上可以特別花工夫進行最適化 (optimization),嵌入式系統在設計上可以採用延伸的

方式 (extensible),在一些固定的功能與基礎之上擴充,完全決定於應用的需要,所以未

來可能會看到很多種類的嵌入式系統。

嵌入式作業系統也是一種作業系統,像 Palm OS、Windows CE ( 或稱 Pocket PC) 、

Symbian 或是所謂的 mobile Linux,都算是嵌入式作業系統。圖 2-16 顯示 Symbian 公

司的網站,我們也可以直接從類似的網站上找到一些相關的資料。

Page 33: ò § * r - Gotop

2-19

02

圖2-16 Symbian公司的網站 (資料來源 : www.symbian.com)

2.2.6

在網路中有的電腦叫做伺服器 (ser ver),提供資源與服務給其他的電腦,通常

伺服器上執行的作業系統跟一般電腦上的作業系統不一樣,例如網路作業系統,像

Windows Vista 在一般電腦上使用,Windows 2008 server 則是在伺服器上使用,以前

的 Windows NT 也是在伺服器上使用,算是一種網路作業系統。

假如一台電腦中有多個處理器,則所用的作業系統可能需要能善用這樣的資源,因

此多處理器架構的電腦所用的作業系統有時候也跟一般的作業系統不同。英文對於多處

理器的電腦有幾個稱呼,像 parallel computers、multi-computers 或是 multiprocessors,

通常採用的作業系統與網路作業系統有點相似。

智慧卡 (smart card) 上存在的作業系統應該是最小型的作業系統,智慧卡的大小

跟信用卡差不多,上面含有 CPU 晶片,但是處理能力與儲存功能很有限,有些智慧

卡具有單一的功能,例如電子付款,有的則兼具數種功能。支援 Java 的智慧卡上會有

JVM(Java Virtual Machine) 的直譯程式 (interpreter),能執行 Java 程式。

Page 34: ò § * r - Gotop

2-20

2.3 (virtual machines)

電腦系統可以看成是由很多層次所組成的,最底下的層次是硬體,作業系統的核心

(kernel) 在硬體之上,以系統呼叫來代表一些硬體的指令,讓更上層的成員使用,核心

之上的系統程式可以使用系統呼叫或是硬體指令來建立更複雜的功能。系統程式可以讓

更上層的應用程式使用。對於應用程式來說,反正下層的功能都可以看成是電腦系統的

一部分,假如有採用虛擬機器的技術,則處理元是在一個虛擬機器的環境中執行的。

在 CPU 排程機制與虛擬記憶體技術的配合下,作業系統可以讓一個處理元在執行

上好像擁有自己的處理器與記憶體一樣,但是事實上並非如此,圖 2-17 顯示虛擬機器

的概念,圖 2-17 左邊是一般的電腦系統架構,圖 2-17 右邊採用虛擬機器的技術,不

同的處理元可以在不同的核心上執行,IBM 的 VM 作業系統就是相當有名的虛擬機器

的實例。

圖2-17 虛擬機器的概念

市場上也有支援虛擬機器技術的軟體,例如圖 2-18 顯示的 VMWare,使用者在同

一台電腦上不需要重新開機就可以執行不同作業系統的程式碼,這樣的功能有很多潛在

的用途,VMWare 的精神是讓企業電腦硬體環境虛擬化,讓使用者面對的是一致的介

面,一般的虛擬機器觀念則可讓一些系統開發的工作變得更方便,因為不同的作業系統

的軟體版本可以在同一台電腦上測試,另外從系統保護的觀點來看,虛擬機器有利於系

統的隔離與保護。

Page 35: ò § * r - Gotop

2-21

02

圖2-18 支援虛擬機器的軟體 (資料來源 : www.vmware.com)

圖 2-19 顯示 VMWare 發展上的策略,VMWare 本身提供的就是虛擬化的層次

(virtualization layer),Java 的虛擬機器是另外一個有名的例子,Java 程式編譯成位元碼

(byte code) 以後,可以拿到任何支援 JVM(Java Virtual Machine) 的電腦中執行,這種

特性使 Java 程式具有跨平台執行的能力。簡單地說,虛擬機器以軟體技術在一個作業

系統中模擬另外一種作業系統,讓另外一種作業系統的程式能在同一台電腦上執行。

圖2-19 VMWare的策略

Page 36: ò § * r - Gotop

重點整理重點整理

2-22

要了解作業系統等於是要了解整個電腦系統作用的原理,因

為作業系統跟電腦軟體與硬體的關係密切,在深入探討作業系統

以前,我們先從作業系統的一般特徵談起,認識作業系統發展的

過程,以及目前的各種作業系統,這對於學習作業系統的觀念是

有幫助的。

Page 37: ò § * r - Gotop

我評量我評量自

2-23

1. ?

2. (multiprogramming) (timesharing)

?

3.

4. ?

5. ?

6. (embedded systems)

?

7.


Recommended