计算机操作系统
发表于:2022-06-21 | 分类: 计算机基础
字数统计: 2.2k | 阅读时长: 7分钟 | 阅读量:

操作系统

本文为学习操作系统的基础

第一章 操作系统概述

操作系统:指控制和管理整个计算机系统的硬件及软件资源,并合理的组织调度计算机的工作和资源的分配,以供给用户和其他软件方便的接口和环境,是计算机中最基本的系统软件。

操作系统的功能

  1. 系统资源的管理者
  2. 向上层提供方便易用的服务
  3. 最为最接近硬件的层次

操作系统的特征

  1. 并发:指两个或多个事件同一时间发生。在宏观上同时发生,微观上交替发生。并发性指计算机"同时运行"着多个程序。单核 CPU 同一时刻只能运行一个程序,各个程序只能并发执行。多核 CPU 同一时刻可以运行多个程序,各个程序可以并行运行。
  2. 共享:指系统中的资源可以供多个并发执行的进程共同使用。互斥共享,一个资源只能一个进程访问;同时共享允许一个时间段内有多个进程“同时”对他们进行访问。
  3. 虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。
  4. 异步:在多个程序环境下,允许多个程序并发执行,但由于资源有限,进程不是一贯到底的。

操作系统的发展和分类

  1. 手工操作阶段:使用纸带输入计算机,计算机输出到纸带上。效率极低。
  2. 单道批处理系统:引入脱机输入输出技术,并由监督程序负责控制输入输出。CPU 仍然大量在空闲等待,资源利用率低。
  3. 多道批处理系统:操作系统的诞生,每次往系统读入多道程序。
  4. 分时操作系统:计算机以时间片为单位轮流为各个用户服务。解决了人机交互的问题。
  5. 实时操作系统:计算机系统接收到外部信号后能及时处理,并在严格的时限内处理完事件。

操作系统的运行机制

指令就是CPU能识别、执行的最基本的命令。

两种指令

  1. 特权指令:操作系统内核作为管理者,会让 CPU 执行一些特权指令。处于内核态的时候,可以执行特权指令。
  2. 非特权指令:处于用户态时,只能执行非特权指令。

两种处理器状态

  1. 核心态
  2. 用户态

两种程序

  1. 内核程序:和操作系统相关的程序,内核是操作系统最核心的部分。
  2. 应用程序:普通程序员写的程序

中断和异常

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

中断的类型

  1. 内中断:与当前执行的指令有关,中断信号来源于 CPU 内部。
  2. 外中断:与当前执行的指令无关,中断信号来源于 CPU 外部。

系统调用

系统调用指操作系统提供给应用程序的接口。

系统调用的分类:

  1. 设备管理:完成设备的启动、释放等功能
  2. 文件管理:完成文件的读写等功能
  3. 进程控制:完成进程的创建、销毁等功能
  4. 进程管理:完成进程之间的消息传递等功能
  5. 内存管理:完成内存的分配、回收等功能

第二章 进程管理

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

进程:是动态的,是程序的一次执行过程。当进程被创建时操作系统会为该进程分配一个唯一的、不重复的“身份证号”-PID

组成:PCB(进程控制块)是进程存在的唯一标志、程序段、数据段

特征:动态性、并发性、独立性、异步性和结构性

进程的状态

进程 PCB 中,会有一个变量 state 记录进程的状态

创建态、就绪态

进程在创建时,它的状态是创建态,在这个阶段操作系统会为进程分配资源、初始化 PCB。

当进程创建完成后,就会进入就绪态,处于就绪态的进程已经具备了运行的条件,但是没有空闲的 CPU,暂时不能运行。

运行态

如果一个进程此时在 CPU 上运行,那么他就处于运行态,CPU 会执行该进程的指令序列

阻塞态

在进程运行期间可能会请求等待某个事件的发生。在这个事件发生前,进程无法向下执行,此时操作系统会让这个进程下 CPU,进入阻塞态。当 CPU 空闲时,又会选择另一个就绪态上 CPU。

终止态

一个进程可以执行 exit 系统调用,请求操作系统终止该进程。该进程会进入终止态,操作系统会让该进程下 CPU,并回收内存空间等资源,还要回收 PCB。进程工作结束,彻底消失。

一个进程不可能从就绪态->阻塞态;也不可能从阻塞态->运行态

进程控制

主要功能:对系统所有的进程实现有效的管理,具有创建新进程、撤销已有进程和实现进程状态转换。
原语:是一种特殊程序,它的执行具有原子性,不能被中断。可以用关中断(不在例行检查是否有中断)和开中断来实现原子性

进程创建

创建原语

  1. 申请 PCB
  2. 为新进程分配资源
  3. 初始化 PCB
  4. 将 PCB 插入就绪队列

引起进程创建的事件

  1. 用户登录
  2. 作业调度
  3. 提供服务
  4. 应用请求

进程终止

撤销原语

  1. 从 PCB 集合找到终止进程的 PCB
  2. 进程正在运行,则剥夺其 CPU,将 CPU 分配给其他进程
  3. 终止其所有子进程
  4. 将该进程拥有的资源归还给父进程或者操作系统
  5. 删除 PCB

引起进程终止的事件

  1. 正常结束
  2. 异常结束
  3. 外界干预

进程阻塞

阻塞原语

  1. 找到要阻塞的 PCB
  2. 保护进程的运行现场,将 PCB 设置为阻塞态,暂停进程的运行
  3. 将 PCB 插入相应事件的等待队列

引起进程阻塞的事件

  1. 需要等待系统分配某种资源
  2. 需要等待相互合作的其他进程完成工作

进程唤醒

唤醒原语

  1. 在事件等待队列中找到 PCB
  2. 将 PCB 从等待队列移除,设置状态为就绪态
  3. 将 PCB 插入就绪队列,等待被调度

引起进程唤醒的事件

  1. 等待事件的发生

进程的切换

切换原语

  1. 将运行环境的信息存入 PCB 中
  2. PCB 移入相应队列
  3. 选择另一个进程执行,并更新其 PCB
  4. 根据 PCB 恢复新进程所需运行环境

引起进程切换的事件

  1. 当进程时间片到了
  2. 有更高优先级的进程到达
  3. 当前进程阻塞
  4. 当前进程终止

进程通信

定义:指两个进程之间的数据交互
共享存储:因为各进程间的内存地址是相互独立的
消息传递:进程之间的数据交互以格式化的消息为单位。进程通过操作系统提供的“发生消息/接收消息”两个原语进行交换。

  1. 直接通信方式
  2. 间接通信方式

管道通信

线程的概念

线程是程序执行的最小单位,是一个基本的 CPU 单元。简单来说就是,轻量级进程。
线程的实现方式

  • 用户级线程
  • 内核级线程

多线程模型

  • 一对一:一个用户级线程映射一个内核级线程
  • 多对一:多个 y 用户级线程映射到一个内核级线程
  • 多对多:n 个用户级线程映射到 m 个内核级线程

调度

概念:确定某种规则来决定处理这些任务的顺序。

进程调度的时机

  1. 当前运行的进程主动放弃处理机

    • 进程正常终止

    • 运行过程中发生异常而终止

    • 进程主动请求阻塞

  2. 当前运行的进程被动的放弃处理机

    • 分配的时间片用完

    • 有更紧急的任务需要处理

    • 有更高优先级的进程进入就绪队列

上一篇:
C++ GUI
下一篇:
计算机网络