操作系统111

本文详细介绍了操作系统中的进程管理,包括进程状态、PCB、调度、上下文切换及进程操作。接着,深入探讨了进程同步,如临界区问题、Peterson算法、信号量、互斥锁、自旋锁,以及经典同步问题的解决方案,如生产者消费者问题、读者写者问题和哲学家就餐问题。最后,提到了管程和信号量的区别,以及Linux线程同步的实现和死锁处理。
摘要由CSDN通过智能技术生成

用户态/内核态
动态链接/静态连接

1 进程管理
1.1 进程状态:
新的:进程正在被创建
运行:指令正在被执行
等待:进程等待某个事件的发生(如I/O完成或收到信号)
就绪:进程等待分配处理器
终止:进程完成执行
1.2 进程控制块(PCB):
每个进程在操作系统中用进程控制块来表示,PCB一般包括:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态
1.3 进程调度
调度队列
就绪队列:通常用链表实现,其中头结点指向链表的第一个和最后一个PCB块的指针。每个PCB包括执行下一个PCB的指针域。
上下文切换:进程的上下文用进程的PCB表示
1.4 进程操作
PID:进程标识符
进程创建
进程终止
父进程/子进程

1.5 进程间通信
进程间通信机制 IPC interprocess communication
进程间通信有两种基本模式:共享内存、消息传递
1.6 线程
线程是CPU使用的基本单元,由线程ID、程序计数器、寄存器集合和栈组成。它与属于同一进程的其他线程共享代码段、数据段、和其他操作系统资源。
多线程
Linux并不区分进程和线程,而是将两者同样对待,将一个任务视为进程或线程,这取决于传递给clone()系统调用的标志集。
1.7 CPU调度
抢占式/非抢占式
调度算法

2 同步
2.1 进程同步
竞争条件:多个进程并发访问和操作同一数据且执行结果与访问发生特定的顺序有关,称为竞争条件。
临界区问题:
假设某个系统有n个进程{P0, P1, …, Pn-1},每个进程有一个代码段称为临界区,在该区中进程可能改变共同变量、更新一个表、写一个文件等。这种系统的重要特征是当一个进程进入临界区,没有其他进程可被允许在临界区内执行,即没有两个进程可同时在临界区内执行。临界区问题是设计一个以便进程协作的协议。每个进程必须请求进入临界区。实现这一请求的代码段称为进入区,临界区之后可有退出区,其他代码称为剩余区。
do {
进入区
临界区(critical section)
退出区
剩余区(reminder se

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值