操作系统(408考研)
进程与线程
进程与线程
一个进程(Process)是计算机中正在运行的程序的实例,它由以下核心组成部分构成:
- PCB(Process Control Block,进程控制块)
- 进程ID(PID)、父进程ID(PPID)
- 进程状态(运行、就绪、阻塞等)
- 代码段(Text Segment)
- 数据段(Data Segment)
- 程序执行的实体。没有代码,进程无法运行;没有数据,代码无法处理信息。
PCB内主要有什么
- 进程标识信息:PID
- 进程状态信息:运行(Running)、就绪(Ready)、阻塞(Blocked)等
- CPU上下文信息(状态):(进程被切换时,保存当前CPU状态以便恢复)PC、SP
- 等
进程的状态转换
- 区分就绪态与阻塞态
- 主动/被动的转换
进程的创建
分配PID与PCB
- 操作系统为新进程分配唯一的进程ID(PID)和空的进程控制块(PCB)。
- 例子:在终端输入
ls
命令时,Shell(父进程)调用fork()
创建子进程,内核为其分配PCB。
分配资源
- 子进程继承父进程的资源(如文件描述符、内存映射),或从操作系统申请新资源。
- 例子:子进程通过
exec()
加载ls
程序时,需申请内存存储代码和数据。
初始化PCB
- 设置进程状态(就绪)、程序计数器(PC)、堆栈指针等。
加入就绪队列
- 新进程被放入调度队列等待CPU分配。
进程终止
终止原因:
- 正常终止:进程执行完毕(如
main()
返回)。 - 异常终止:段错误(访问非法内存)、除零错误、被
kill
命令杀死。
终止步骤:
- 触发终止:exit()、信号、父进程终止
- 释放资源:内存、文件、锁、设备等
- 更新 PCB:状态改为 Zombie,记录退出状态
- 通知父进程:父进程 wait() 或由 init 接管
- 删除 PCB
进程阻塞与唤醒
1. 阻塞(主动行为)
- 触发条件:进程主动调用阻塞操作(如
read()
等待I/O)。 - 过程:
- 进程从运行态转为阻塞态,PCB加入等待队列。
- CPU调度其他就绪进程。
2. 唤醒(被动行为)
- 触发条件:外部事件发生(如I/O完成、信号量释放)。
- 过程:
- 内核将对应PCB从阻塞队列移到就绪队列。
- 进程重新等待调度。
例子:
- 当磁盘I/O完成时,硬件触发中断,操作系统唤醒等待该I/O的进程。
易错点
阻塞是主动的,唤醒是被动的:
- 阻塞是进程主动请求等待(如调用
sleep()
),而唤醒依赖外部事件(如定时器中断)。
- 阻塞是进程主动请求等待(如调用
资源泄漏:
- 终止进程时若未释放资源(如内存泄漏),会导致系统资源耗尽。
进程调度负责分配CPU资源,而非进程创建
进程调度(Process Scheduling)是操作系统内核的核心功能之一,负责从多个就绪(Ready)的进程中选择一个进程分配CPU资源,并控制进程状态的切换。其本质是解决CPU资源的分配问题,确保系统高效、公平地运行多个程序。
进程之间的通信
- 共享存储:原理:多个进程访问同一块内存区域,直接读写数据,速度最快(无需内核介入)。
- 消息传递:原理:进程通过发送/接收消息(数据包(HTTP))通信,由内核中转。
- 管道通信:管道是一种特殊的文件:又称pipe文件。管道不满即可发、管道不空即可收
如何理解“进程获得处理器运行是通过调度得到的”?
这句话的核心含义是:在操作系统中,进程不能直接占用 CPU,而是必须由操作系统的调度程序(Scheduler)决定哪个进程可以运行、何时运行以及运行多久。
并发程序的执行速度与调度策略的关系
并发程序的执行速度并非单纯由CPU性能决定,调度策略的合理配置(如时间片(短时间片提高响应速度,长时间片提高吞吐量。)、算法选择(FCFS适合长任务,RR适合交互式任务。))同样关键
高级调度
高级调度的核心功能是 将作业从磁盘加载到内存并创建进程,因此 一定会导致新进程创建
为什么分时操作系统中,就绪态的任务最多?
分时操作系统的主要目标是:公平共享CPU时间(每个任务轮流执行一小段时间)。
实时操作系统阻塞态任务最多
因为:
- 任务多为事件/周期驱动,大部分时间在等待触发条件。
- 高优先级任务抢占CPU,低优先级任务长期阻塞。
- 资源同步机制(如锁、信号量)强制任务阻塞等待。
线程
进程-资源分配的基本单位
线程-现代OS中CPU调度和分派的最小单位
系统线程 vs 用户线程
用系统线程:
需要真并发(如视频编码、科学计算)。
线程可能频繁阻塞(如网络服务)。用用户线程:
轻量级任务(如快速切换的小任务)。
语言或环境限制(如Python的GIL)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 陈同学的桃花源!
评论