文章目录
1、进程
PCB(进程控制块)
PCB |
---|
进程状态 |
进程编号 |
程序计数器(即将执行的下个指令地址) |
寄存器 |
内存界限 |
打开文件列表 |
…(CPU调度信息) |
进程继承
fork() 创建子进程
exec() 代替父进程
wait() 父进程等待子进程消亡
子进程继承父进程
1、用户号(UIDs)和用户组号(GIDs)
2、环境
3、堆栈,共享内存,打开文件描述符
4、执行时的关闭标志、信号控制设定
5、进程组号,当前工作目录
子进程独有
1、进程号
2、父进程号
3、自己的文件描述符和目录流拷贝
父进程独有(不可继承)
1、进程正文,数据,锁定内存
2、异步输入输出
子进程终止条件
1、父进程终止
2、子进程任务结束,不再被需要
3、子进程是用来超过分配的资源
进程间通信
管道
匿名:在有血缘关系的进程中使用
命名(FIFO):一种文件类型,无血缘关系中使用
信号
通知接受进程有某件事要发生
信号量
常用于线程间同步
消息队列
消息链接表,放在内存中,共享消息队列,有权限可以对消息队列进行读写消息操作
共享内存
两个或多个进程共享一个给定的存储区
最快的通信方式
套接字
一般进程间的通信方式
进程间同步
信号量:信号量为负,绝对值为等待信号量的进程个数
互斥锁
条件变量
读写锁(多进程并行读)
记录锁(提高并行性)
临界区问题
临界区:不予许多个进程交叉执行
临界区资源:互斥访问的资源
临界区问题
1、互斥:资源互斥访问
2、有空让进:对队列来说,队列需要是前进的
3、有限等待:对单个进程来说,等待时间应该是有限的,不应该无限等待
进程和线程
线程:CPU使用的基本单位
进程:操作系统资源分配的基本单位
一个进程有多个线程(任务),线程是轻量级的进程
线程调用fork(),创建的新进程将会复制所有线程
并发和并行
并发:多个事件,同一时间间隔,同一实体上完成
并行:多个事件,同一时间,不同实体上同时进行
2、CPU调度
调度准则
1、CPU使用率
2、吞吐量:单元时间内完成进程数量
3、周转时间: T 完 成