操作系统导论 第二章 操作系统介绍

头文件下载

虚拟化CPU

  • 示例程序
(base) matytan@matytandeMacBook-Pro ch2 % gcc -o cpu cpu.c -Wall
(base) matytan@matytandeMacBook-Pro ch2 % ./cpu A

#多个程序一起跑
(base) matytan@matytandeMacBook-Pro ch2 % ./cpu A &; ./cpu B &; ./cpu C &; ./cpu D &
[1] 92105
[2] 92106
[3] 92107
[4] 92108
(base) matytan@matytandeMacBook-Pro ch2 % A
B
C
  • 只有一个cpu,如何做到4个程序同时跑?==虚拟化CPU,如何虚拟化?
    • 抽象为进程
    • 进程调度

虚拟化内存

(base) matytan@matytandeMacBook-Pro ch2 % ./mem 1 &;./mem 1
[1] 97588
(pid:97588) addr of p:        7ff7bdc6a388
(pid:97588) addr stored in p: 6000023f0040
(pid:97589) addr of p:        7ff7bd83f388
(pid:97589) addr stored in p: 600002ff8040
(pid:97588) value of p: 2
(pid:97589) value of p: 2
(pid:97588) value of p: 3
(pid:97589) value of p: 3

两个不同进程的地址竟然一样!同时独立更新了值,每个正在运行的都有自己的私有内存,不与其他正在运行的程序共享相同文件

  • 这就是虚拟内存
    • 每个进程独立的虚拟地址空间
    • 分段
    • 分页

并发

多线程~

  • 指令如何执行,这会影响并发的正确性(以下三条指令并不是原子操作!任意顺序皆有可能)
    • 计数器值从内存加载到寄存器
    • 递增计数器
    • 将值保存回内存
  • 因此程序两个线程处理计数器递增如果不使用某些措施,会导致最后结果并不正确

持久性

  • 文件系统

设计目标

操作系统它取得CPU、内存或磁盘等物理资源(resources),并对它们进行虚拟化(virtualize)。它处理与并发(concurrency)有关的麻烦且棘手的问题。它持久地(persistently)存储文件,从而使它们长期安全。

  • 获取资源
  • 虚拟化资源
  • 处理并发执行的问题
  • 持久化文件

三个目标:

建立抽象

抽象使得编写一个大型程序成为可能,将其划分为小而且容易理解的部分,用C这样的高级语言编写这样的程序不用考虑汇编,用汇编写代码不用考虑逻辑门,用逻辑门来构建处理器不用太多考虑晶体管。

高性能的操作系统

虚拟化和让系统易于使用是非常值得的,但不会不计成本。因此,我们必须努力提供虚拟化和其他操作系统功能,同时没有过多的开销。这些开销会以多种形式出现:额外时间(更多指令)和额外空间(内存或磁盘上)。如果有可能,我们会寻求解决方案,尽量减少一种或两种。但是,完美并非总是可以实现的,我们会注意到这一点,并且(在适当的情况下)容忍它。

提供系统和应用,应用和应用之间的保护,即隔离

保护是操作系统基本原理之一的核心,这就是隔离(isolation)。让进程彼此隔离是保护的关键,因此决定了OS必须执行的大部分任务。

简单历史

  • 早期操作系统:一些库

  • 超越库:保护

系统调用和过程调用之间的关键区别在于,系统调用将控制转移(跳转)到OS中,同时提高硬件特权级别(hardware privilege level)。

  • 多道程序时代

  • 摩登时代
    个人计算机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值