初识操作系统

概述


概念、功能

  1. 操作系统是系统资源的管理者
    • 处理机管理CPU
    • 存储器管理
    • 文件管理
    • 设备管理
  2. 向上层提供方便易用的服务
    • GUI
    • 用户接口
      • 命令接口
        • 联机命令接口(交互式命令接口)
        • 脱机命令接口(批处理命令接口)
      • 程序接口 (可以在程序中进行系统调用来使用程序接口)
  3. 是最基本的系统软件(是最接近硬件的一层软件)

纯硬件 ==> 操作系统 ==> 应用程序(软件) ==> 用户


特征


并发

​ 系统中同时存在着多个运行着的程序

​ 宏观上同时发生,微观上交替发生

并发一般都会有并行的特点,如I/O处理与CPU处理

image-20210120101407921

并行

​ 同一时刻同时发生

单核CPU程序只能并发执行

多核CPU程序可以并行发生


共享

​ 系统中的资源可供内存中多个并发执行的进程同时使用

  • 互斥共享方式

  • 同时共享方式

    宏观上同时,微观上交替对资源进行访问,即分时共享

    有的宏观上同时微观上也同时

并发与共享互为同时存在条件


虚拟

​ 把一个物理上的实体变为若干个逻辑上的对应物

  • 空分复用技术(虚拟存储器)
  • 时分复用技术(虚拟处理器)

没有并发就谈不上虚拟


异步

​ 系统资源有限,进程的执行不是一贯到底的, 而是走走停停即阻塞,这就是进程的异步性

只有存在并发性,才会存在异步性


操作系统发展

  • 手工操作阶段
  • 批处理阶段
    • 单道批处理系统
    • 多道批处理系统 中断、并发
  • 分时操作系统 时间片 人机交互
  • 实时操作系统 紧急任务
    • 硬实时系统
    • 软实时系统
  • 网络操作系统
  • 分布式操作系统 分布性和并行性
  • 个人计算机操作系统

程序运行

  • 应用程序 - 非特权指令
  • 内核程序 - 特权指令

CPU 中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”

  • 内核态(管态)
    • 运行的是内核程序,此时可以执行特权指令
  • 用户态(目态)
    • 运行的是应用程序,此时只能执行非特权指令

image-20201223204800099


中断

中断是让操作系统夺回CPU使用权的唯一途径

没有中断,何来并发

image-20210122113722873

  • 内中断(异常)

    • 来自CPU内部,与当前指令有关
    • 陷入指令/trap指令/访管指令(与系统调用有关)
  • 外中断

    • 时钟部件的中断信号
    • I/O中断
  • 中断向量表

    不同的中断信号,需要用不同的中断处理程序来处理


系统调用

应用程序可以通过系统调用来请求获得操作系统内核的服务

广义指令指的是执行系统调用指令,处在内核态

系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。


体系结构

image-20201224135157963

image-20201224135035629

  • 大内核

    高性能

  • 微内核

    内核功能少,结构清晰


进程管理

  • 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合
  • 进程:是动态的,是程序的一个执行过程

概念

进程的组成
  • 进程管理块PCB

    PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。

    操作系统对进程进行管理工作所需的信息都存在PCB中

    • 进程描述信息,区分各个进程
      • 进程ID:PID
      • 进程所属用户ID:UID
    • 实现操作系统对资源的管理
      • 正在使用哪些内存区域
      • 正在使用哪些I/O设备
    • 实现操作系统对进程的控制与管理
      • CPU、磁盘使用情况统计
      • 进程当前状态
    • 处理机相关信息,实现进程切换
      • PSW、PC等各种寄存器的值

image-20210120093329991


  • 程序段、数据段

PCB是给操作系统用的,程序段、数据段是给进程自己用的

image-20201224160902527


进程是动态的,进程实体是静态的

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

image-20201224160930599


进程的特征
  • 动态性:最基本特征
  • 并发性
  • 独立性:独立获得资源、独立接受调度的基本单位
  • 异步性
  • 结构性:PCB

额外的-封闭性:一个进程一旦开始执行,其执行结果与外界因素无关,即是否共享变量


状态与转换、组织

  • 创建态:分配资源、初始化PCB
  • 就绪态
  • 运行态
  • 阻塞态
  • 终止态

image-20201224165830756

image-20201224165854785


  • 组织方式
    • 链接方式–队列
    • 索引方式

进程控制

实现进程状态转换

通过原语来实现,因为原语的执行是一气呵成的,具有’'原子性",否则会造成操作系统中某些关键数据结构信息不统一。

可以通过开中断与关中断这两个特权指令来实现原子性


创建原语

系统用于创建进程

  1. 申请空白PCB
  2. 为新进程分配所需资源
  3. 初始化PCB
  4. 将PCB插入就绪队列,从创建态变为就绪态

撤消原语
  1. 找到终止进程的PCB
  2. 若在运行,剥夺CPU
  3. 终止所有子进程
  4. 归还资源给父进程或CPU
  5. 删除PCB

阻塞原语与唤醒原语

必须成对使用

  • 找到PCB
  • 保护进程运行现场,停止进程运行
  • 将PCB插入相应事件的等待队列

唤醒原语与其相反


切换原语

运行前需要把程序放入内存,CPU从内存中取出指令执行

  • 将运行环境信息存入PCB(一些必要的寄存器信息)
  • 将PCB移入相应队列
  • 选择另一个进程执行并更新其PCB
  • 根据PCB恢复进程所需的运行环境

无论哪个进程控制原语,要做的无非三类事情:

  1. 更新PCB中的信息
    a. 所有的进程控制原语一定都会修改进程状态标志
    b. 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    c. 某进程开始运行前必然要恢复期运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源

进程通信

进程通信就是指进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。

  • 共享存储
    • 基于数据结构的共享:低级通信方式
    • 基于存储区的共享:高级通信方式

两个进程对共享资源的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)

  • 管道通信:在内存中开辟一个大小固定的缓冲区(共享空间的优化

    • 半双工通信,只能实现单向通信
    • 互斥进行
  • 消息传递

    计算机网络

    • 直接通信方式
    • 间接通信方式

线程

线程理解为“轻量级进程”。**线程是一个基本的CPU执行单元,也是程序执行流的最小单位。**引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度。

影响
  • 引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。线程则作为处理机的分配单元。
  • 引入线程后并发带来的开销减小
  • 提高并发度

属性
  • 每个线程有线程控制块TCB、线程ID
  • 线程也有三种基本状态
  • 线程几乎不拥有系统资源
  • 每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源
  • 同一进程的不同线程共享进程的资源
  • 同一进程的不同线程切换时不需要切换进程环境,开销小

实现方式
  • 用户级线程
  1. 用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责(包括线程切换)
  2. 用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预。
  3. 在用户看来,是有多个线程。但是在操作系统内核看来,并意识不到线程的存在。“用户级线程”就是“从用户视角看能看到的线程”

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高

缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高。多个线程不可在多核处理机上并行运行。


  • 内核级线程
  1. 内核级线程的管理工作由操作系统内核完成
  2. 线程调度、切换等工作都由内核负责,因此内核级线程的切换必然需要在核心态下才能完成。
  3. 操作系统会为每个内核级线程建立相应的TCB(Thread Control Block,线程控制块),通过TCB对线程进行管理。“内核级线程”就是“从操作系统内核视角看能看到的线程”

优点:当一个线程被阻塞后,别的线程还可以继续执行,并发能力强。多线程可在多核处理机上并行执行。

缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大


多线程模型
  • 多对一模型

多个用户级线程映射到一个内核级线程。且一个进程只被分配一个内核级
线程。操作系统只“看得见”内核级线程,因此只有内核级线程才是处理机分配的单位

优点与缺点与用户级线程一样

  • 多对多模型

n 用户级线程映射到m 个内核级线程(n >= m)。每个用户进程对应m 个内核级线程。克服了多对一模型并发度不高的缺点(一个阻塞全体阻塞),又克服了一对一模型中一个用户线程库进程占用太多内核级线程,开销太大的缺点。

用户级线程是“代码逻辑”的载体
内核级线程是

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值