操作系统复习
一,引论
1.3 os的基本特征🍪
并发
并发是指操作系统能够同时处理多个任务或进程。这些任务可以在同一时间段内交替执行,或者在多个处理器上并行执行。并发的实现可以通过时间片轮转调度算法、多线程、多进程等技术。并发性可以提高系统的资源利用率和响应能力。
共享
共享是指操作系统能够让多个用户或多个程序同时访问和使用系统的资源。这些资源可以是处理器、内存、磁盘、网络等。共享的实现需要操作系统提供适当的机制,如进程间通信、文件系统等。共享可以提高系统的效率和资源利用率
虚拟
虚拟化是指操作系统能够为应用程序提供一个虚拟的执行环境,使其感觉自己拥有独占的资源。虚拟化可以分为多种类型,如硬件虚拟化、内存虚拟化、网络虚拟化等。通过虚拟化,操作系统可以提供更高的灵活性和可扩展性,同时实现资源的隔离和安全性。
异步
由于资源等因素的限制,进程的执行不能一气呵成,只能走走停停,虽然速度不可预知但是结果都是相同的
异步是指操作系统能够以非阻塞的方式处理多个任务或事件。在异步模式下,操作系统可以同时进行多个操作,而不需要等待每个操作的完成。这样可以提高系统的响应性能和效率。异步操作通常与事件驱动的编程模型结合使用,如回调函数、消息队列等。
之间的关系
这些特征之间存在着紧密的联系。并发性和共享性为操作系统提供了处理多个任务和资源共享的能力。虚拟化提供了资源的抽象和隔离机制,使应用程序能够在虚拟环境中运行。异步性使得操作系统能够同时处理多个任务或事件,提高系统的并行性和响应性能。
1.4 操作系统运行环境
硬件支持
引导程序在固件中
引导程序知道如何加载内核
操作系统内核
支撑功能
- 中断处理
(有限处理) - 时钟管理
每次时间片用完都会由时钟管理产生一个中断信号,促使程序重新进行调度
- 原语操作
原语操作由若干条指令组成,是原子操作
资源管理功能
- 进程管理
- 存储器管理
- 设备管理
中断与异常
1.5 操作系统的主要功能🌝
os的主要目的是为多道程序运行提供良好的运行环境
处理机管理
- 进程控制
主要功能:为作业 创建进程,撤销(终止)已结束进程,控制进程在运行过程中状态的转换
- 进程同步
两种协调方式:1.互斥,2.同步
互斥通过为临界资源加锁实现,进程同步通过信号量机制实现
- 进程通信
- 调度
- 作业调度
- 进程调度
存储器管理
- 内存分配和回收
1. 静态分配
2. 动态分配 - 内存保护
- 地址映射
程序和内存地址的映射 - 内存扩充
- 请求调入
- 置换
发生在内存空间不够用的情况下
设备管理
- 缓存管理
解决cpu和io设备速度不匹配的问题 - 设备分配
为进程分配设备(通过设备控制表,控制器控制表等数据结构记录设备和设备控制器的标识符和状态) - 设备处理
设备驱动作用
文件管理
实现文件存储空间管理,目录管理,文件的读写管理和保护等功能
- 文件存储空间管理
为每个文件分配必要的存储空间,拥有数据结构,可以记录文件存储空间的使用情况
对存储空间进行分配和回收 - 目录管理
为每个文件建立目录项,目录项,目录项包括文件名,文件属性,文件在磁盘上的物理位置等 - 文件读写和保护
接口管理
用户接口
- 联机用户接口
shell - 脱机用户接口
批处理命令,例如shell脚本 - 图形接口
程序接口
调用函数的接口等
1.6 操作系统结构
简单结构
模块化结构
分层结构
微内核结构
外核结构
- 外核结构:外核结构允许应用程序直接访问和管理硬件资源,因此应用程序可以更灵活地控制资源的使用和优化。应用程序可以自定义外核库,实现自己的资源管理策略。
- 微内核:微内核将资源管理的责任交给用户空间的服务进程。内核只提供最基本的资源分配和保护机制,而具体的资源管理则由独立的用户空间进程实现。
二,进程的描述和控制
2.1进程描述
2.1.1进程的概念
为什么要有进程(来自chatgpt)
进程在计算机系统中扮演着重要的角色,主要有以下几个原因:
并发执行:进程允许多个程序同时运行,从而实现并发执行。通过多进程的方式,可以同时执行多个任务,提高系统的效率和资源利用率。
资源管理:进程提供了一种机制来管理系统资源,如内存、文件、设备等。每个进程都有自己的地址空间和资源表,操作系统可以通过进程控制块(PCB)来跟踪和管理进程的状态、资源分配等信息。
隔离性:每个进程都在独立的地址空间中运行,相互之间不会干扰。这种隔离性可以保证进程之间的数据和状态互不影响,提高了系统的稳定性和安全性。
独立性:每个进程都是一个独立的执行实体,具有自己的代码、数据和执行环境。进程之间可以独立地进行资源分配、调度和执行,从而实现灵活的应用程序设计和管理。
进程间通信:进程可以通过进程间通信(IPC)机制进行数据交换和协作。通过共享内存、消息传递、管道等方式,进程可以在需要时相互通信,实现数据共享和协同工作。
异步操作:进程可以以异步的方式执行任务,即一个进程可以执行自己的任务,而不需要等待其他进程的完成。这种异步操作使得系统能够同时进行多个独立的任务,提高了系统的响应性和并发能力。
综上所述,进程在操作系统中扮演着重要的角色,通过并发执行、资源管理、隔离性、独立性、进程间通信和异步操作等特性,实现了多任务处理和资源利用的优化。
为什么进程可以允许程序同时运行
进程允许多个程序同时运行的主要原因是操作系统的调度和资源管理机制。
在操作系统中,有一个称为进程调度器的组件负责决定哪些进程应该在给定的时间片内获得 CPU 的执行时间。通过使用调度算法,操作系统可以公平地分配CPU时间片给不同的进程,从而实现多个程序的同时运行。
此外,操作系统还提供了资源管理的机制,如内存管理、文件系统、设备驱动程序等,用于分配和管理系统资源。每个进程都有自己的地址空间和资源表,操作系统可以根据进程的需求来分配和管理资源。
通过进程调度和资源管理,操作系统能够将 CPU 时间和其他系统资源按照一定的策略分配给多个程序,使它们可以同时运行。这种并发执行的机制提高了系统的效率和资源利用率,使多个程序能够在同一个系统中独立地执行,从而满足用户的多任务处理需求。
我的理解:普通程序在设计的时候我们不会考虑执行到哪个状态拥有资源,还有地址空间等信息,所以我们需要引入进程这个结构包装一下
进程作为程序的执行实体,包含了程序的代码、数据、执行环境和资源管理信息等。进程提供了一个隔离的执行环境,每个进程拥有独立的地址空间和资源表,使得不同的程序能够在同一个系统中并发执行,而互不干扰。
通过进程的包装,操作系统可以对进程进行调度、分配资源和管理状态,从而实现多任务处理和资源利用的优化。进程提供了一个执行上下文,使得程序能够被加载到内存中执行,并能够访问所需的资源。同时,进程间通信和同步机制也通过进程的概念来实现。
因此,引入进程这个结构是为了将普通程序与计算机系统的执行环境、资源管理和并发执行机制进行适配,从而使得程序能够在系统中正确运行,并能够同时执行多个程序
定义:(不同角度)
- 进程是程序的一次执行
- 进程是一个程序及数据在处理机上顺序执行的时所发生的的活动
- 进程是有独立功能的的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
组成:
进程由程序控块pcb,程序段,数据段组成
- PCB: PCB中应该包含操作系统对其进行管理所需的各种信息,如进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息。
(我的理解是各种原信息,起到识别和控制的作用) - 程序段:程序代码存放的位置。
- 数据段:程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量就
存放在数据段内。
PCB
- pcb的作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 能提供进程管理 所需要的信息
- 能提供进程调度所需要的信息
- 能实现和其他进程的同步和通信
- pcb所包含的信息
- 进程标识符
- 处理机状态
- 进程调度信息
- 进程控制信息
- pcb 的组织方式
- 线性方式
- 链接方式
- 索引方式
进程的特征
- 动态性:动态的产生变化和消亡
- 并发性:内存中有多个进程实体,各进程可并发操作(毕竟一开始进程的出现就是为了解决原本程序并发会出现失去了可再现性)
- 独立性:独立的运行,获取资源,独立接收调度的基本单位(不怎么理解)
- 异步性:各个进程按各自独立的、不可预知的速度向前推进,操作系统要提供进程向步机制来解决异步问题。
- 结构性:结构上来看,进程由程序段,数据段和PCB组成
mindmap 进程的特征 [动态性] (并发性) ((独立性)) ))异步性(( )结构性(
2.1.2进程的状态
一般来说进程有五个状态:就绪状态,运行状态,阻塞状态创建状态,终止状态组成,前三个是基本状态
就绪态:
进程状态的切换
阻塞 -> 就绪 ->运行
阻塞->运行 and 就绪->阻塞不可能发生
2.2 进程通信
低级通信:pv操作
高级通信:
高级通信
- 共享存储系统
- 共享数据结构
- 共享存储区
- 管道通信
- 连接一个读进程和一个写进程以实现通信的文件,pipe文件
- 消息传递利用原语进行通信
- 直接通信
- 间接通信