type
status
date
slug
summary
tags
category
icon
password
😀
文章前言:
本篇主要讲述操作系统基础即进程与线程的一些相关概念。
 

操作系统概述


1 操作系统的基本概念

1.1 操作系统的定义

  • 计算机系统自下而上可以大致分为4部分:硬件、操作系统、应用程序和用户。
操作系统是计算机系统中的一个系统软件,它管理和控制计算机系统中的软件和硬件资源,实现进程管理、存储管理、设备管理和文件管理等系统功能,具有并发、共享和随机三个主要特征。
操作系统由硬件和软件组成。
  • 是在硬件基础上的第一层软件
  • 是其他软件和硬件之间的接口
 

1.2 操作系统的特征

并发和共享是操作系统两个最基本的特征。
(1)并发
并发是指两个或多个时间在同一时间间隔内发生。
并行性是指系统具有同时进行运算或操作的特性。
  • 并行一定并发,并发不一定并行
(2)共享
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
  • 互斥共享方式
  • 同时共享方式
(3)虚拟
虚拟是指将一个物理上的实体变为若干逻辑上的对应物。
  • 时分复用技术:虚拟处理器
  • 空分复用技术:虚拟存储器
(4)异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
 

1.3 操作系统的作用

(1)OS作为用户与计算机硬件系统之间的接口
  • 命令接口
    • 联机命令接口,又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。
    • 脱机命令接口:又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。
  • 程序接口
    • 由一组系统调用(也称广义指令)组成。
    • 当前最流行的图形用户界面(GUI),即图形接口。
(2)OS作为计算机系统资源的管理者
  • 进程(处理机)管理:进程控制、进程同步、进程调度
  • 存储管理:内存分配、内存保护、地址映射
  • 设备管理:缓冲管理、设备分配
  • 文件管理:文件存储空间管理、目录管理
(3)OS实现了对计算机资源的抽象/扩充
  • 没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础。
  • 我们通常将覆盖了软件的机器称为扩充机器或者虚拟机。
 

1.4 推动操作系统发展的主要动力

  • 不断提高计算机资源的利用率
  • 为用户提供方便
  • 硬件的不断更新迭代
  • 计算机体系结构的发展
 

2 操作系统的发展历程

2.1 手工操作阶段

  • 联机输入
程序的装入、运行、结果的输出等都需要人工干预。
 

2.2 批处理阶段

  • 脱机输入
  • 为了解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾。
(1)单道批处理系统
  • 自动性
  • 顺序性
  • 单道性
(2)多道批处理系统
多道程序设计的特点:多道、宏观上并行、微观上串行
特征:多道性、无序性、调度性
优点:
  • 资源利用率高
  • 系统吞吐量大
缺点:
  • 平均周转时间长
  • 无交互能力(单道、多道都是)
 

2.3 分时操作系统

所谓分时技术,是指将处理器的运行时间分成很短的时间片,按时间片轮流将处理器分配给各联机作业使用。
分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
特征:
  • 同时性
  • 交互性
  • 独立性
  • 及时性
 

2.4 实时操作系统

为了能在某个时间限制内完成某些紧急任务而不需要时间排队
  • 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生。
  • 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害。
特点:及时性、可靠性。
分时系统和实时系统特征的比较
  • 多路性:实时系统多路性表现为多路信息的采集和多任务的执行调度。
  • 及时性:实时系统对及时性的要求更严格。
  • 交互性:实时系统交互性较强。
  • 可靠性:实时系统要求更高的可靠性。
 

2.5 网络操作系统和分布式计算机系统

网络操作系统将计算机网络中的各台计算机有机结合起来,提供一种统一、经济而有效的使用各种计算机的方法,实现各台计算机之间的通信。
特点:网络中各种资源的共享及各台计算机之间的通信。
 

3 操作系统的运行环境

3.1 处理器的状态

根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态。
多数系统将处理器工作状态划分为管态和目态。
  • 管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态、核心态、系统态。
  • 目态:用户程序运行时的状态,较低的特权级别,又称为普通态、用户态。
有些系统将处理器状态划分为核心状态、管理状态和用户程序状态三种。
 

3.2 中断技术

中断对于操作系统的重要性:就像机器中的驱动齿轮一样。
所以有人把操作系统统称为是由“中断驱动”或者“(中断)事件驱动”
  • 它使得S可以捕获用户程序发出的系统功能调用。
  • 及时处理设备的中断请求。
  • 防止用户程序中断破坏性的活动。
 

3.3 中断的概念

  • CPU对系统发生的某个事件做出的一种反应。
  • CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序。
  • 引入中断的目的
    • 解决主机与外设的并行工作问题
    • 实现实时控制
  • 特点
    • 中断是随机的
    • 中断是可恢复的
    • 中断是自动处理的
 

3.4 中断的分类

  • 中断,也称为外中断,是指来自CPU执行指令外部的时间中断。
    • 可屏蔽中断INTR
    • 不可屏蔽中断NMI
  • 异常,也称为内中断,是指来自CPU执行指令内部的事件。
    • 软件中断
      • 故障
      • 自陷
    • 硬件中断
      • 终止
 

4 进程与线程

4.1 进程控制块及其作用

进程控制块(PCB):是一种数据结构,是进程实体的一部分。记录了操作系统所需的、用于描述进程的当前情况及控制进程运行的全部信息。
作用:
  • 是一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCH来对并发执行的进程进行控制和管理的。
  • PCB是进程存在与否的唯一标志,随着进程的建立而建立,随着进程的撤销而撤销。创建进程就是创建PCB。
 

4.2 进程及其特征

进程:是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程实体:由程序段、相关的数据段诶和PCB构成。
  • 动态性:进程是动态的基本单元。
  • 并发性:引入进程的目的是为了使进程实体能和其他进程实体并发执行。
  • 独立性
  • 异步性
注:进程与程序的主要区别
进程是程序的一次执行过程。
  • 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的。
  • 程序是静态的观念,进程是动态的观念。
  • 进程具有并发性,而程序没有。
  • 进程是竞争计算机资源的基本单位,程序不是。
  • 进程和程序不是一一对应的;一个程序可对应多个进程即多个进程可执行同一程序;一个进程可以执行一个或几个程序。
 

4.3 进程的状态与转换

  • 运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
  • 就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行的状态。当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 等待(wait)态:又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态。也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
notion image
 

5 程序的运行

5.1 程序状态字

程序状态字(PSW):计算机系统中用于存放指令执行结果状态和控制信息的寄存器。
  • CPU的工作状态码——指明管态还是目态,用来说明当前在 CPU 上执行的是操作系统。
  • 条件码——反映指令执行后的结果特征。
  • 中断屏蔽码——指出是否允许中断。

5.2 程序顺序执行的特征

  • 顺序性:严格按照程序锁规定的次序执行。
  • 封闭性:程序在封闭环境下运行,系统中所有资源的状态不会因本程序外的程序而改变。
  • 可再现性:只要初始条件相同,无论怎样执行,其结果都是相同的。
 

5.3 程序并发执行的特征

提高了系统吞吐量
  • 间断性:并发执行的实体之间相互制约,导致程序的执行出现间断,而不连续。
  • 非封闭性:多个程序共享系统资源,因而其状态有多个程序改变,从而失去封闭性。
  • 不可再现性:封闭性的丧失必然导致不可再现性。
 
 
💡
有关问题,欢迎您在底部评论区留言,一起交流~
OS 复习范围算法设计与分析
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏