Computer Science - An Overview - 3. Operating Systems

3.1 The History of Operating Systems

  • 多任务处理(multitasking)的问题
    • load balancing:在多个处理器这件,动态调节任务
    • scaling:把一个任务拆分成子任务
  • embedded system:嵌入到特定仪器上的系统

3.2 Operating System Architecture

A Software Survey

Components of an Operating System

  • 操作系统 = UI + kernel
  • 两类UI:shell(键盘显示器,文本)vs. GUI
- UNIX Windows
shell Bourne shell, C shell, ... cmd
GUI X11 windows
  • kernel
    • 文件管理(斜线:windows左,网址、LINUX右 )
    • 设备驱动:和controller通讯的软件
    • 内存管理:管理主存。paging:把待处理信息在主存和硬盘之间来回倒,制造虚拟内存。
    • scheduler,dispatcher

Getting It Started

  • 开机过程
    • 开启前操作系统存储在硬盘中,主存是空的
    • 每次启动,CPU的program counter(存储这下一条指令的地址),都包含一个预定的地址
    • 这个地址指向内存中特殊的ROM(read only memory,掉电依然保存),存储着boot loader
    • boot loader负责把操作系统载入到主存中,之后让program counter跳转到操作系统的第一条指令
  • 操作系统可以存放在闪存甚至远程电脑中
  • firmware:ROM中,除了boot loader之外的其他软件。介于软硬之间。例如BIOS, EFI。

3.3 Coordinating the Machine's Activities

The Concept of a Process

  • 进程:执行一个程序的“行为”。随着时间变化。
  • 进程状态 = 程序中正在执行的位置(program counter)+所有寄存器状态

Process Administration

  • scheduler:在process table中管理任务(任务管理器可见)
    • 记录process使用的内存地址,优先级,ready/waiting
  • dispatcher:管理资源(时间片)
    • 从所有ready进程中,选择最高优先级,分配一个时间片
    • 时间片计时结束后,触发interrupt
    • CPU完成当前machine cycle
    • CPU记录当前process状态,进入下一循环

3.4 Handling Competition Among Processes

  • 需要竞争的资源:文件读写权限、 新文件创建的硬盘空间、内存、process table中的位置、时间片、网络、GPU

Semaphores

  • 有些代码(例如独占设备),一次只能由一个进程执行完,才允许下一个进程执行。要用一个flag进行保护
  • 这个flag本身的读取/设置也需要进行
    • 法1:在读取时,设定不可中断;设置完成后,再设置可中断
    • 法2:test-and-set设置为一个指令,在一个machine cycle中完成
  • 这种“精心维护”的flag称为semaphore。可访问程序个数可以不止为一。

Deadlock

  • 多个进程,相互等待对方完成,才能从waiting变成ready
  • 死锁的三个必要条件
名称 含义 解决 举例
竞争 在不可共享资源上存在竞争 规避 把打印机驱动(不可共享)当成资源->把待打印队列(可共享)达成资源。spooling
请求和保持 进程一部分一部分地申请资源。申请新的时候,旧的不放弃 规避 一次申请全部资源
不可剥夺 资源分配后,不可被强制取回 检测和矫正 杀进程

3.5 Security

Attacks from the Outside

Attacks from Within

  • 两种模式:privileged mode/nonprivileged mode,是否可以运行所有指令
  • 某些指令(e.g.改写程序访问限制的寄存器),需要限制执行

你可能感兴趣的:(Computer Science - An Overview - 3. Operating Systems)