Computer Science - An Overview - 3. Operating Systems

3.1 The History of Operating Systems

  • 多任務(wù)處理(multitasking)的問(wèn)題
    • load balancing:在多個(gè)處理器這件,動(dòng)態(tài)調(diào)節(jié)任務(wù)
    • scaling:把一個(gè)任務(wù)拆分成子任務(wù)
  • embedded system:嵌入到特定儀器上的系統(tǒng)

3.2 Operating System Architecture

A Software Survey

Components of an Operating System

  • 操作系統(tǒng) = UI + kernel
  • 兩類UI:shell(鍵盤(pán)顯示器,文本)vs. GUI
- UNIX Windows
shell Bourne shell, C shell, ... cmd
GUI X11 windows
  • kernel
    • 文件管理(斜線:windows左,網(wǎng)址、LINUX右 )
    • 設(shè)備驅(qū)動(dòng):和controller通訊的軟件
    • 內(nèi)存管理:管理主存。paging:把待處理信息在主存和硬盤(pán)之間來(lái)回倒,制造虛擬內(nèi)存。
    • scheduler,dispatcher

Getting It Started

  • 開(kāi)機(jī)過(guò)程
    • 開(kāi)啟前操作系統(tǒng)存儲(chǔ)在硬盤(pán)中,主存是空的
    • 每次啟動(dòng),CPU的program counter(存儲(chǔ)這下一條指令的地址),都包含一個(gè)預(yù)定的地址
    • 這個(gè)地址指向內(nèi)存中特殊的ROM(read only memory,掉電依然保存),存儲(chǔ)著boot loader
    • boot loader負(fù)責(zé)把操作系統(tǒng)載入到主存中,之后讓program counter跳轉(zhuǎn)到操作系統(tǒng)的第一條指令
  • 操作系統(tǒng)可以存放在閃存甚至遠(yuǎn)程電腦中
  • firmware:ROM中,除了boot loader之外的其他軟件。介于軟硬之間。例如BIOS, EFI。

3.3 Coordinating the Machine's Activities

The Concept of a Process

  • 進(jìn)程:執(zhí)行一個(gè)程序的“行為”。隨著時(shí)間變化。
  • 進(jìn)程狀態(tài) = 程序中正在執(zhí)行的位置(program counter)+所有寄存器狀態(tài)

Process Administration

  • scheduler:在process table中管理任務(wù)(任務(wù)管理器可見(jiàn))
    • 記錄process使用的內(nèi)存地址,優(yōu)先級(jí),ready/waiting
  • dispatcher:管理資源(時(shí)間片)
    • 從所有ready進(jìn)程中,選擇最高優(yōu)先級(jí),分配一個(gè)時(shí)間片
    • 時(shí)間片計(jì)時(shí)結(jié)束后,觸發(fā)interrupt
    • CPU完成當(dāng)前machine cycle
    • CPU記錄當(dāng)前process狀態(tài),進(jìn)入下一循環(huán)

3.4 Handling Competition Among Processes

  • 需要競(jìng)爭(zhēng)的資源:文件讀寫(xiě)權(quán)限、 新文件創(chuàng)建的硬盤(pán)空間、內(nèi)存、process table中的位置、時(shí)間片、網(wǎng)絡(luò)、GPU

Semaphores

  • 有些代碼(例如獨(dú)占設(shè)備),一次只能由一個(gè)進(jìn)程執(zhí)行完,才允許下一個(gè)進(jìn)程執(zhí)行。要用一個(gè)flag進(jìn)行保護(hù)
  • 這個(gè)flag本身的讀取/設(shè)置也需要進(jìn)行
    • 法1:在讀取時(shí),設(shè)定不可中斷;設(shè)置完成后,再設(shè)置可中斷
    • 法2:test-and-set設(shè)置為一個(gè)指令,在一個(gè)machine cycle中完成
  • 這種“精心維護(hù)”的flag稱為semaphore??稍L問(wèn)程序個(gè)數(shù)可以不止為一。

Deadlock

  • 多個(gè)進(jìn)程,相互等待對(duì)方完成,才能從waiting變成ready
  • 死鎖的三個(gè)必要條件
名稱 含義 解決 舉例
競(jìng)爭(zhēng) 在不可共享資源上存在競(jìng)爭(zhēng) 規(guī)避 把打印機(jī)驅(qū)動(dòng)(不可共享)當(dāng)成資源->把待打印隊(duì)列(可共享)達(dá)成資源。spooling
請(qǐng)求和保持 進(jìn)程一部分一部分地申請(qǐng)資源。申請(qǐng)新的時(shí)候,舊的不放棄 規(guī)避 一次申請(qǐng)全部資源
不可剝奪 資源分配后,不可被強(qiáng)制取回 檢測(cè)和矯正 殺進(jìn)程

3.5 Security

Attacks from the Outside

Attacks from Within

  • 兩種模式:privileged mode/nonprivileged mode,是否可以運(yùn)行所有指令
  • 某些指令(e.g.改寫(xiě)程序訪問(wèn)限制的寄存器),需要限制執(zhí)行
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容