SlideShare a Scribd company logo
第4章 作業系統

      作業系統簡介
      CPU排班
      記憶體管理
      檔案系統




      作業系統簡介
      電腦系統:硬體、作業系統、應用軟體、使用者

       使用者    使用者   使用者            使用者
                              …
        1      2     3              n


       編譯程式   組譯程式 文字編輯程式     …   資料庫系統
                    系統及應用程式

                    作業系統

                    電腦硬體


      作業系統:負責管理電腦裡的硬體及週邊設備,扮演介
      於使用者與電腦硬體的中間人
4-2




                                          1
作業系統的工作




4-3




      作業系統的主要工作
       中央處理器管理
        把處理器有效地安排給各個程序使用
       記憶體管理
        妥善分配記憶體給各個程序使用
       檔案管理
        讓使用者安全存取及控制檔案
       週邊設備管理
        管理各項週邊系統,提供簡易使用者介面程式
       程序管理
        依據程序控制表安排資源

4-4




                               2
Components of an operating system




4-5




      作業系統的演進:主機型系統
       多元程式規劃系統(multiprogramming)
         利用多元程式規劃增加CPU使用率
         程序:一個程式被載入記憶體中並且執行時,就
         稱為程序
         程序的狀態:
         新產生 程序正在產生中。
               程序得到資源正在執行。
          執行
               程序等待某個事件發生。
          等待
               程序一切已準備就緒。
          就緒
               程序已完成。
          結束
4-6




                                          3
程序狀態關係圖
              進入            離開
       新產生                       結束
                     中斷


              就緒            執行
                   排班程式分派

                             I/O或事件等待
                     等待
        I/O或事件完成


      只要程序進入等待的狀況時,CPU就轉移到其他的程序
      上運作;如果原本在等待的程序已經變成就緒時,就有
      機會從新得到CPU的資源
4-7




      作業系統的演進:主機型系統
       分時系統
        採用時間觸發, CPU輪流計算各個程序,時間一到就把CPU交給
        下一個程序使用.可以讓多個使用者共用一部電腦;也能在只
        有一個處理器的個人電腦上, 同時開多個視窗來完成度同的工作
        分時系統的特點:
         同時性:可同時有若干個使用者連結到同一計算機進行運算
         獨立性:不同使用者之間不會相互干擾
         即時性:每一個使用者都可以即時得到計算機的回應, 讓大
             家同時都認為自己與電腦正在交談,沒有間斷




4-8




                                          4
多元程式規劃系統 vs.分時系統

        多元程式規劃系統        事件觸發
        (event-driven)
        分時系統        時間觸發 (time-driven)




4-9




       作業系統的演進:個人電腦系統
        個人電腦設計方向:增進使用者操作方便,並且
        提升CPU的回應速度,避免使用者等待

        個人電腦系統的演進:

             早期:DOS文字指令
           第一個圖形化介面:Mac IS
            最多人使用:Windows
            免付費作業系統:Linux


4-10




                                         5
作業系統的演進:手持系統
       手持系統:個人數位助理,較手提式電腦輕薄短小
       手持式系統的特點:
        記憶體容量小:必須有較好的記憶體管理方式
        處理器運算緩慢:為使電池使用時間較長,故運算速度不可能
        太快(電腦運算速度愈快愈耗電),因此必須巧妙設計作業系
        統或應用程式
        顯示螢幕小:使用者介面設計必須格外留意好讓使用者看到
        較多畫面




4-11




       CPU排班
       多元程式規劃作業系統: CPU排班
       CPU排班:保持隨時都有一個程序在執行,以提高CPU的使
       用率
       CPU排班的五個決策時間點:
                 程序新產生時
        程序從執行狀態變等待狀態(譬如有I/O要求)
       程序從執行狀態變就緒狀態(譬如有中斷發生時)
       程序從等待狀態變就緒狀態(譬如I/O要求得到回應)
                 程序終止結束

4-12




                                      6
五個必須CPU排班的時間點

              1 進入
                              離開
        新產生                            結束
                      3中斷
                                   5
                就緒            執行
                     排班程式分派

                                  I/O或事件等待
                              2
                         等待
         I/O或事件完成
                     4


4-13




       CPU排班
        不可搶先排班 (nonpreemptive)
         確保已經享有CPU資源的程序能夠一直執行,不
         管其他程序的狀態,直到享有CPU資源的程序自
         己跳到非執行的狀態才進行排班

        可搶先排班(preemptive)
         時時刻刻注意程序的狀態,如果有程序進入就緒
         狀態則進行排班,比較正在使用CPU的程序與進
         入就緒狀態的程序的優先順序,優先順序高者可
         先使用CPU


4-14




                                             7
CPU排班演算法:先到先處理
         先到先處理:採用先進先出的方式(first in first
         out),服務先到的程序
         舉例:
              程序    抵達順序  所需時間(毫秒)
            P1      1                         15
            P2      2                          3
            P3      3                          3
         先到先處理之甘特圖(gantt chart):

                         P1              P2         P3
         0                          15         18        21


4-15




       先到先處理(First Come First Serve)
         各程序等待時間
             程序        等待時間(毫秒)    平均等待時間(毫秒)
             P1           0
             P2           15
             P3           18                  11

          若抵達先後順序改變如下:
              程序          抵達順序      所需時間(毫秒)
                  P1           3              15
                  P2           1               3
                  P3           2               3

4-16




                                                              8
先到先處理
         則甘特圖如下所示:

            P2             P3                P1
        0         3             6                          21
         平均等待時間如下所示:

            程序              等待時間(毫秒)         平均等待時間(毫秒)
             P1                      6
             P2                      0
             P3                      3                 3

            “先到先處理”的缺點:可能使短程序等待長程序
4-17




       最短工作先處理(Short Job First)
            舉例
                 程序                      所需時間(毫秒)
                  P1                         7
                  P2                         3
                  P3                         5
            甘特圖如下所示:

             P2                     P3            P1
        0              3                 8                 15



4-18




                                                                9
最短工作先處理
        各程序的等待時間
         程序       等待時間(毫秒)   平均等待時間(毫秒)
         P1              8
         P2              0
         P3              3       3.67
        不同的抵達順序及其平均等待時間
          程序先後順序             平均等待時間
          P1 → P2 → P3         5.67
          P1 → P3 → P2         6.44
          P2 → P1 → P3         4.33
          P2 → P3 → P1         3.67
          P3 → P1 → P2         5.67
          P3 → P2 → P1         4.33
4-19




       最短工作先處理
       優點:可將平均等候時間降到最低
       缺點:偏袒短程序,故可能使長程序長時間處
          於等待狀態,可能造成無限延遲的現象




4-20




                                          10
優先權排班(Priority Scheduling)
        優先權如下
            程序       優先權          所需時間(毫秒)
            P1            3          7
            P2            1          5
            P3            2          4

        甘特圖如下
            P2       P3             P1
        0        5            9              16



4-21




       優先權排班
       優點:
       比較重要的程序確定可優先完成,例如作業系
       比較重要的
       統
       缺點:
       Priority會優先處理優先權高的程序,因此可
       能造成低優先權程序的無限延遲




4-22




                                                  11
依序循環排班(Round Robin Scheduling)
        依序循環排班方式在使用時,先預設好經過多
        少時間CPU就該切換執行下一個程序,也就是設
        定好間隔時間(time slice)。所有的程序放在
        新進先出的佇列裡面,首先CPU排班從佇列裡挑
        第一個程序執行,然後開始進行倒數,時間到
        的時候就得讓CPU處理佇列裡下一個程序。




4-23




       依序循環排班
         範例
             程序                 所需時間                抵達順序(毫秒)
              P1                     17                       1
              P2                     3                        2
              P3                     8                        3
         甘特圖:間隔時間=5毫秒

             P1        P2       P3        P1        P3        P1        P1
         0         5        8        13        18        21        26        28




4-24




                                                                                  12
記憶體管理
       記憶體管理:
        記憶體管理:把記憶體分割成各個區塊,以供各程序或各使
        用者使用
        記憶體位址定位:把程序所使用的邏輯位址與記憶體的實際
        位址作映射




        記憶體保護與共享:程序之間所使用的記憶體不能相互干擾,
        可是作業系統的部分要讓各個程序共享

4-25




       單一連續記憶體配置方式
        記憶體被分成三個區塊:作業系統存放、應用程
        式佔用、未使用區塊


                        作業系統佔用
         低位址

        程式可以佔用          應用程式佔用


         高位址             實際未用




4-26




                                      13
單一連續記憶體配置
        利用界線暫存器和基底暫存器來提供記憶體保護,防止
        使用者破壞作業系統

                        界線            基底
                       暫存器           暫存器


               邏輯位址              是          實際位址
                                        +          記憶體
         CPU             <

                             否
                   中斷:錯誤處理


4-27




       記憶體管理- 真實記憶體
       分區記憶體管理 (Partitioned Memory Management)
        將記憶體分割成數個相互獨立的區塊,每一區塊都配置
        給一個程序使用
        滿足多元程式(Mutiprogramming)執行的最簡單方式
        分區記憶體管理方式:
           靜態分區 ( Static partition )
           動態分區 ( Dynamic partition )




4-28




                                                         14
記憶體管理- 真實記憶體
       分區記憶體管理 (Partitioned Memory Management)




4-29




       記憶體管理- 真實記憶體
       分區記憶體管理
       靜態分區 ( Static partition )
            靜態分區是指在處理任何程序前,主記憶體就已經被分割
            成許多相同大小或不同大小的區塊,區塊大小由作業系統
            決定
            優點:方法簡單易完成
            缺點:(1)分割的區塊數固定,相對地可執行的程序數
                  也固定
               (2)可能產生「內部
                  碎片」(Internal
                  Fragmentation)




4-30




                                                 15
記憶體管理- 真實記憶體
       分區記憶體管理
       動態分區 ( Dynamic partition )
           在開始執行某程序時才分割一滿足需求的記憶體區塊給該
           程序
           配置:(1)找到一個未使用且足夠大的區塊
              (2)若此區塊比程序所提出的需求大 分割成
                 配置給程序的執行區塊 與 殘餘的自由空間
           回收:將回收區塊與相鄰自由空間合併成一塊大的連續自
              由空間
           優點:配置後殘餘的自由空間仍可提供其他程序使用,可
              提升記憶體的使用率
           缺點:可能產生「外部碎片」(External Fragmentation):
              主記憶體中存在許多不連續的自由空間


4-31




       記憶體管理- 真實記憶體
       分區記憶體管理
       動態分區範例
        若作業系統將主記憶體切割成
        固定大小400k的區塊,若有程
        序P1、P2、P3、P4依序提出
        200k、300k、330k、150k的主
        記憶體請求,則產生的外部碎
        片情況如圖所示




4-32




                                                    16
記憶體管理- 真實記憶體
       可重定位分區記憶體管理 ( Relocated Partitioned Memory Management)
       具有壓縮(Compaction)與重定位(Relocation)的功能
        將已配置給程序的記憶體集中移到記憶體的一端,使得零
        碎的自由空間可以合併成一塊連續的自由空間
         優點:(1)可避免產生「碎片」(Fragmentation) 的問題
            (2)透過記憶體壓縮可以增加記憶體的使用效率
         缺點:(1)進行記憶體壓縮必須耗費系統時間
            (2)降低執行速度,提高系統成本




4-33




       記憶體管理- 真實記憶體
       可重定位分區記憶體管理
       範例
        (a)為某時刻程序A(90K)、B(85K)、C(60K)的記憶體配置情況,當加入
           行程D(60K)時由於兩塊零碎的自由空間40K、50K分別皆不足以提供
           行程D執行
        (b)在可重定位分區記憶體管理中將進行記憶體壓縮
        (c)經過記憶體壓縮後,自由空間合併為一塊60K的連續空間,因此可
           以配置給需要60K記憶體的行程D使用




4-34




                                                                17
記憶體管理- 真實記憶體
       分頁記憶體管理 (Paged Memory Management )
       將程式所需的記憶體大小(邏輯空間)分割成許多大小相同的區塊,每
       將程式所需的記憶體大小( 邏輯空間)
       一塊稱為「分頁」(Page)
       一塊稱為「分頁」(Page)
       將主記憶體(實體空間)也分割成許多和頁大小相同的單位,每一單位
       將主記憶體( 實體空間)
       稱為「頁框」(Frame)
       稱為「頁框」(Frame)




4-35




       覆蓋
        主要的部分會一直存放在記憶體中,只有在特定時後才
        需要用到的指令或資料則只有用到時才放進記憶體中,
        其他時候則被覆蓋掉
        使用覆蓋的範例

                      符號表    20K

                     一般常式    30K

                     重疊驅動
                             10K
                      程式

         80K 第1次處理            第2次處理 70K
4-36




                                            18
置換
        利用磁碟當作備分的儲存體,用以置換兩個程序


            作業系統


                         程序
                   1換出   P1

                   2換入        程序
                              P2
            使用者
             空間
                         備份儲存體
            主記憶體
4-37




       記憶體管理- 虛擬記憶體
        虛擬記憶體 ( Virtual Memory )
        為使程式的位址空間(邏輯空間)可以大於主記憶體(實體空
        間),在執行程式的過程中,僅將執行到的部分程式載入,
        執行完畢即釋出,如此一來程式執行的空間不會受到主記
        憶體大小所限制,想像是有一個可無限使用的記憶體空間
        ,稱為虛擬記憶體




4-38




                                      19
檔案系統
        檔案系統負責存取和管理檔案資料
        檔案系統的功能包括:
        (1)檔案實際存放空間的配置與回收
        (2)檔案名稱及與實際存放空間的映射
        (3)提供檔案的共享、保護與保密
        (4)達到使用者要求的檔案操作(建立/讀/寫/刪除….等)
        檔案系統的重要屬性:
         名稱:讓使用者辨別不同的檔案
         識別符號:獨一無二的標籤,讓作業系統辨別檔案
         型態:顯示檔案的類型
         位置:標示出檔案所在的磁碟及目錄位置
         大小:顯示檔案目前的大小
         時間日期:顯示檔案建立日期、修改日期、最後開啟日期
         等
4-39




       檔案管理
       檔案類型
        常見的電腦檔案包括:資料檔、全文檔、執行檔、批次檔
        資料檔:
        通常是由一群格式相同但內容不同的記錄(record)所組成,且
        任何資料檔所包含的記錄數量是不固定的
        全文檔:
        主要包括文書檔和原始程式檔,其內容是完全由字元所構成
        執行檔:
        由一連串機器碼指令所組成,構成可處理特定工作或問題的
        程式
        批次檔(batch file) :
        內容包括命令 (command) 和執行檔的主檔名,通常用來設定
        電腦系統的使用者環境或簡化執行程式的程序


4-40




                                           20
檔案的基本操作
        檔案的基本操作
         建立檔案
         寫入檔案
         讀取檔案
         刪除檔案
        目錄結構必須支援的功能
         搜尋
         建檔
         刪除檔名
         更改檔名

4-41




       目錄結構:單層目錄
        同一個目錄下不能有兩個同樣檔名的檔案




4-42




                             21
目錄結構:雙層目錄
        每個使用者的目錄結構相似
        開啟檔案時,只會搜尋使用者自己的目錄


            主檔目錄     user1 user2 user3 user4



使用者      home- gam tem          home-          home-   gam
    test                 test           test               data mail
目錄        work  e   p            work           work    e




4-43




       路徑
        絕對路徑:root/user1/homework/hw1.doc
        相對路徑:/homework/hw1.doc




4-44




                                                                       22

More Related Content

More from Seng Chi Ao

第11章 電子商務
第11章 電子商務第11章 電子商務
第11章 電子商務
Seng Chi Ao
 
第3章 計算機組織 (Update)
第3章 計算機組織 (Update)第3章 計算機組織 (Update)
第3章 計算機組織 (Update)
Seng Chi Ao
 
第2章 數位資料表示法
第2章 數位資料表示法第2章 數位資料表示法
第2章 數位資料表示法
Seng Chi Ao
 
第1章 計算機簡介
第1章 計算機簡介第1章 計算機簡介
第1章 計算機簡介
Seng Chi Ao
 
第5章 網際網路 (Update)
第5章 網際網路 (Update)第5章 網際網路 (Update)
第5章 網際網路 (Update)
Seng Chi Ao
 

More from Seng Chi Ao (7)

C++
C++C++
C++
 
C++
C++C++
C++
 
第11章 電子商務
第11章 電子商務第11章 電子商務
第11章 電子商務
 
第3章 計算機組織 (Update)
第3章 計算機組織 (Update)第3章 計算機組織 (Update)
第3章 計算機組織 (Update)
 
第2章 數位資料表示法
第2章 數位資料表示法第2章 數位資料表示法
第2章 數位資料表示法
 
第1章 計算機簡介
第1章 計算機簡介第1章 計算機簡介
第1章 計算機簡介
 
第5章 網際網路 (Update)
第5章 網際網路 (Update)第5章 網際網路 (Update)
第5章 網際網路 (Update)
 

第4章 作業系統 (Update)

  • 1. 第4章 作業系統 作業系統簡介 CPU排班 記憶體管理 檔案系統 作業系統簡介 電腦系統:硬體、作業系統、應用軟體、使用者 使用者 使用者 使用者 使用者 … 1 2 3 n 編譯程式 組譯程式 文字編輯程式 … 資料庫系統 系統及應用程式 作業系統 電腦硬體 作業系統:負責管理電腦裡的硬體及週邊設備,扮演介 於使用者與電腦硬體的中間人 4-2 1
  • 2. 作業系統的工作 4-3 作業系統的主要工作 中央處理器管理 把處理器有效地安排給各個程序使用 記憶體管理 妥善分配記憶體給各個程序使用 檔案管理 讓使用者安全存取及控制檔案 週邊設備管理 管理各項週邊系統,提供簡易使用者介面程式 程序管理 依據程序控制表安排資源 4-4 2
  • 3. Components of an operating system 4-5 作業系統的演進:主機型系統 多元程式規劃系統(multiprogramming) 利用多元程式規劃增加CPU使用率 程序:一個程式被載入記憶體中並且執行時,就 稱為程序 程序的狀態: 新產生 程序正在產生中。 程序得到資源正在執行。 執行 程序等待某個事件發生。 等待 程序一切已準備就緒。 就緒 程序已完成。 結束 4-6 3
  • 4. 程序狀態關係圖 進入 離開 新產生 結束 中斷 就緒 執行 排班程式分派 I/O或事件等待 等待 I/O或事件完成 只要程序進入等待的狀況時,CPU就轉移到其他的程序 上運作;如果原本在等待的程序已經變成就緒時,就有 機會從新得到CPU的資源 4-7 作業系統的演進:主機型系統 分時系統 採用時間觸發, CPU輪流計算各個程序,時間一到就把CPU交給 下一個程序使用.可以讓多個使用者共用一部電腦;也能在只 有一個處理器的個人電腦上, 同時開多個視窗來完成度同的工作 分時系統的特點: 同時性:可同時有若干個使用者連結到同一計算機進行運算 獨立性:不同使用者之間不會相互干擾 即時性:每一個使用者都可以即時得到計算機的回應, 讓大 家同時都認為自己與電腦正在交談,沒有間斷 4-8 4
  • 5. 多元程式規劃系統 vs.分時系統 多元程式規劃系統 事件觸發 (event-driven) 分時系統 時間觸發 (time-driven) 4-9 作業系統的演進:個人電腦系統 個人電腦設計方向:增進使用者操作方便,並且 提升CPU的回應速度,避免使用者等待 個人電腦系統的演進: 早期:DOS文字指令 第一個圖形化介面:Mac IS 最多人使用:Windows 免付費作業系統:Linux 4-10 5
  • 6. 作業系統的演進:手持系統 手持系統:個人數位助理,較手提式電腦輕薄短小 手持式系統的特點: 記憶體容量小:必須有較好的記憶體管理方式 處理器運算緩慢:為使電池使用時間較長,故運算速度不可能 太快(電腦運算速度愈快愈耗電),因此必須巧妙設計作業系 統或應用程式 顯示螢幕小:使用者介面設計必須格外留意好讓使用者看到 較多畫面 4-11 CPU排班 多元程式規劃作業系統: CPU排班 CPU排班:保持隨時都有一個程序在執行,以提高CPU的使 用率 CPU排班的五個決策時間點: 程序新產生時 程序從執行狀態變等待狀態(譬如有I/O要求) 程序從執行狀態變就緒狀態(譬如有中斷發生時) 程序從等待狀態變就緒狀態(譬如I/O要求得到回應) 程序終止結束 4-12 6
  • 7. 五個必須CPU排班的時間點 1 進入 離開 新產生 結束 3中斷 5 就緒 執行 排班程式分派 I/O或事件等待 2 等待 I/O或事件完成 4 4-13 CPU排班 不可搶先排班 (nonpreemptive) 確保已經享有CPU資源的程序能夠一直執行,不 管其他程序的狀態,直到享有CPU資源的程序自 己跳到非執行的狀態才進行排班 可搶先排班(preemptive) 時時刻刻注意程序的狀態,如果有程序進入就緒 狀態則進行排班,比較正在使用CPU的程序與進 入就緒狀態的程序的優先順序,優先順序高者可 先使用CPU 4-14 7
  • 8. CPU排班演算法:先到先處理 先到先處理:採用先進先出的方式(first in first out),服務先到的程序 舉例: 程序 抵達順序 所需時間(毫秒) P1 1 15 P2 2 3 P3 3 3 先到先處理之甘特圖(gantt chart): P1 P2 P3 0 15 18 21 4-15 先到先處理(First Come First Serve) 各程序等待時間 程序 等待時間(毫秒) 平均等待時間(毫秒) P1 0 P2 15 P3 18 11 若抵達先後順序改變如下: 程序 抵達順序 所需時間(毫秒) P1 3 15 P2 1 3 P3 2 3 4-16 8
  • 9. 先到先處理 則甘特圖如下所示: P2 P3 P1 0 3 6 21 平均等待時間如下所示: 程序 等待時間(毫秒) 平均等待時間(毫秒) P1 6 P2 0 P3 3 3 “先到先處理”的缺點:可能使短程序等待長程序 4-17 最短工作先處理(Short Job First) 舉例 程序 所需時間(毫秒) P1 7 P2 3 P3 5 甘特圖如下所示: P2 P3 P1 0 3 8 15 4-18 9
  • 10. 最短工作先處理 各程序的等待時間 程序 等待時間(毫秒) 平均等待時間(毫秒) P1 8 P2 0 P3 3 3.67 不同的抵達順序及其平均等待時間 程序先後順序 平均等待時間 P1 → P2 → P3 5.67 P1 → P3 → P2 6.44 P2 → P1 → P3 4.33 P2 → P3 → P1 3.67 P3 → P1 → P2 5.67 P3 → P2 → P1 4.33 4-19 最短工作先處理 優點:可將平均等候時間降到最低 缺點:偏袒短程序,故可能使長程序長時間處 於等待狀態,可能造成無限延遲的現象 4-20 10
  • 11. 優先權排班(Priority Scheduling) 優先權如下 程序 優先權 所需時間(毫秒) P1 3 7 P2 1 5 P3 2 4 甘特圖如下 P2 P3 P1 0 5 9 16 4-21 優先權排班 優點: 比較重要的程序確定可優先完成,例如作業系 比較重要的 統 缺點: Priority會優先處理優先權高的程序,因此可 能造成低優先權程序的無限延遲 4-22 11
  • 12. 依序循環排班(Round Robin Scheduling) 依序循環排班方式在使用時,先預設好經過多 少時間CPU就該切換執行下一個程序,也就是設 定好間隔時間(time slice)。所有的程序放在 新進先出的佇列裡面,首先CPU排班從佇列裡挑 第一個程序執行,然後開始進行倒數,時間到 的時候就得讓CPU處理佇列裡下一個程序。 4-23 依序循環排班 範例 程序 所需時間 抵達順序(毫秒) P1 17 1 P2 3 2 P3 8 3 甘特圖:間隔時間=5毫秒 P1 P2 P3 P1 P3 P1 P1 0 5 8 13 18 21 26 28 4-24 12
  • 13. 記憶體管理 記憶體管理: 記憶體管理:把記憶體分割成各個區塊,以供各程序或各使 用者使用 記憶體位址定位:把程序所使用的邏輯位址與記憶體的實際 位址作映射 記憶體保護與共享:程序之間所使用的記憶體不能相互干擾, 可是作業系統的部分要讓各個程序共享 4-25 單一連續記憶體配置方式 記憶體被分成三個區塊:作業系統存放、應用程 式佔用、未使用區塊 作業系統佔用 低位址 程式可以佔用 應用程式佔用 高位址 實際未用 4-26 13
  • 14. 單一連續記憶體配置 利用界線暫存器和基底暫存器來提供記憶體保護,防止 使用者破壞作業系統 界線 基底 暫存器 暫存器 邏輯位址 是 實際位址 + 記憶體 CPU < 否 中斷:錯誤處理 4-27 記憶體管理- 真實記憶體 分區記憶體管理 (Partitioned Memory Management) 將記憶體分割成數個相互獨立的區塊,每一區塊都配置 給一個程序使用 滿足多元程式(Mutiprogramming)執行的最簡單方式 分區記憶體管理方式: 靜態分區 ( Static partition ) 動態分區 ( Dynamic partition ) 4-28 14
  • 15. 記憶體管理- 真實記憶體 分區記憶體管理 (Partitioned Memory Management) 4-29 記憶體管理- 真實記憶體 分區記憶體管理 靜態分區 ( Static partition ) 靜態分區是指在處理任何程序前,主記憶體就已經被分割 成許多相同大小或不同大小的區塊,區塊大小由作業系統 決定 優點:方法簡單易完成 缺點:(1)分割的區塊數固定,相對地可執行的程序數 也固定 (2)可能產生「內部 碎片」(Internal Fragmentation) 4-30 15
  • 16. 記憶體管理- 真實記憶體 分區記憶體管理 動態分區 ( Dynamic partition ) 在開始執行某程序時才分割一滿足需求的記憶體區塊給該 程序 配置:(1)找到一個未使用且足夠大的區塊 (2)若此區塊比程序所提出的需求大 分割成 配置給程序的執行區塊 與 殘餘的自由空間 回收:將回收區塊與相鄰自由空間合併成一塊大的連續自 由空間 優點:配置後殘餘的自由空間仍可提供其他程序使用,可 提升記憶體的使用率 缺點:可能產生「外部碎片」(External Fragmentation): 主記憶體中存在許多不連續的自由空間 4-31 記憶體管理- 真實記憶體 分區記憶體管理 動態分區範例 若作業系統將主記憶體切割成 固定大小400k的區塊,若有程 序P1、P2、P3、P4依序提出 200k、300k、330k、150k的主 記憶體請求,則產生的外部碎 片情況如圖所示 4-32 16
  • 17. 記憶體管理- 真實記憶體 可重定位分區記憶體管理 ( Relocated Partitioned Memory Management) 具有壓縮(Compaction)與重定位(Relocation)的功能 將已配置給程序的記憶體集中移到記憶體的一端,使得零 碎的自由空間可以合併成一塊連續的自由空間 優點:(1)可避免產生「碎片」(Fragmentation) 的問題 (2)透過記憶體壓縮可以增加記憶體的使用效率 缺點:(1)進行記憶體壓縮必須耗費系統時間 (2)降低執行速度,提高系統成本 4-33 記憶體管理- 真實記憶體 可重定位分區記憶體管理 範例 (a)為某時刻程序A(90K)、B(85K)、C(60K)的記憶體配置情況,當加入 行程D(60K)時由於兩塊零碎的自由空間40K、50K分別皆不足以提供 行程D執行 (b)在可重定位分區記憶體管理中將進行記憶體壓縮 (c)經過記憶體壓縮後,自由空間合併為一塊60K的連續空間,因此可 以配置給需要60K記憶體的行程D使用 4-34 17
  • 18. 記憶體管理- 真實記憶體 分頁記憶體管理 (Paged Memory Management ) 將程式所需的記憶體大小(邏輯空間)分割成許多大小相同的區塊,每 將程式所需的記憶體大小( 邏輯空間) 一塊稱為「分頁」(Page) 一塊稱為「分頁」(Page) 將主記憶體(實體空間)也分割成許多和頁大小相同的單位,每一單位 將主記憶體( 實體空間) 稱為「頁框」(Frame) 稱為「頁框」(Frame) 4-35 覆蓋 主要的部分會一直存放在記憶體中,只有在特定時後才 需要用到的指令或資料則只有用到時才放進記憶體中, 其他時候則被覆蓋掉 使用覆蓋的範例 符號表 20K 一般常式 30K 重疊驅動 10K 程式 80K 第1次處理 第2次處理 70K 4-36 18
  • 19. 置換 利用磁碟當作備分的儲存體,用以置換兩個程序 作業系統 程序 1換出 P1 2換入 程序 P2 使用者 空間 備份儲存體 主記憶體 4-37 記憶體管理- 虛擬記憶體 虛擬記憶體 ( Virtual Memory ) 為使程式的位址空間(邏輯空間)可以大於主記憶體(實體空 間),在執行程式的過程中,僅將執行到的部分程式載入, 執行完畢即釋出,如此一來程式執行的空間不會受到主記 憶體大小所限制,想像是有一個可無限使用的記憶體空間 ,稱為虛擬記憶體 4-38 19
  • 20. 檔案系統 檔案系統負責存取和管理檔案資料 檔案系統的功能包括: (1)檔案實際存放空間的配置與回收 (2)檔案名稱及與實際存放空間的映射 (3)提供檔案的共享、保護與保密 (4)達到使用者要求的檔案操作(建立/讀/寫/刪除….等) 檔案系統的重要屬性: 名稱:讓使用者辨別不同的檔案 識別符號:獨一無二的標籤,讓作業系統辨別檔案 型態:顯示檔案的類型 位置:標示出檔案所在的磁碟及目錄位置 大小:顯示檔案目前的大小 時間日期:顯示檔案建立日期、修改日期、最後開啟日期 等 4-39 檔案管理 檔案類型 常見的電腦檔案包括:資料檔、全文檔、執行檔、批次檔 資料檔: 通常是由一群格式相同但內容不同的記錄(record)所組成,且 任何資料檔所包含的記錄數量是不固定的 全文檔: 主要包括文書檔和原始程式檔,其內容是完全由字元所構成 執行檔: 由一連串機器碼指令所組成,構成可處理特定工作或問題的 程式 批次檔(batch file) : 內容包括命令 (command) 和執行檔的主檔名,通常用來設定 電腦系統的使用者環境或簡化執行程式的程序 4-40 20
  • 21. 檔案的基本操作 檔案的基本操作 建立檔案 寫入檔案 讀取檔案 刪除檔案 目錄結構必須支援的功能 搜尋 建檔 刪除檔名 更改檔名 4-41 目錄結構:單層目錄 同一個目錄下不能有兩個同樣檔名的檔案 4-42 21
  • 22. 目錄結構:雙層目錄 每個使用者的目錄結構相似 開啟檔案時,只會搜尋使用者自己的目錄 主檔目錄 user1 user2 user3 user4 使用者 home- gam tem home- home- gam test test test data mail 目錄 work e p work work e 4-43 路徑 絕對路徑:root/user1/homework/hw1.doc 相對路徑:/homework/hw1.doc 4-44 22