操作系统-进程管理

进程:用来描述计算机程序的执行过程和作为资源分配的基本单位,反映操作系统的执行并发、资源共享以及用户随机的特点。
1、进程和程序的区别

  • 进程是一个动态概念,而程序则是一个静态概念。程序时指令的有序集合
  • 进程具有并发特性(独立性和异步性),而程序没有
  • 不同的进程可以包含同一程序,只是该程序对应的数据集不同

2、进程的描述
(1)进程控制块PCB
是系统感知进程存在的唯一实体。通过对PCB的操作,系统为有关进程分配资源从而使有关进程得以被调度执行,中断现场信息也都在PCB中。当进程执行结束后,则通过释放PCB来释放所占用的各种资源。
为了减少PCB对内存的占用量,只允许PCB中最常用的部分,如CPU现场保护,进程描述信息、控制信息等常驻内存,其他部分则置于外存。
(2)进程上下文-程序段和数据集
已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,把正在执行的指令和数据在寄存器与堆栈中的内容称为正文,把待执行的指令和数据在寄存器与堆栈的内容称为下文。
进程上下文切换发生在不同进程之间,发生进程中断或进程调用需要保存正文部分到该进程的PCB中

3、进程状态转换

这里写图片描述

4、进程的创建与回收
(1)进程由系统程序模块统一创建或父进程创建
(2)进程终止

  • 从main函数返回
  • 调用exit
  • 最后一个线程从其启动例程返回
  • 最后一个线程调用pthread_exit()
  • 异常终止abort或接受到信号
  • 父进程回收子进程

5、进程互斥
(1) 必须满足4条准则

  1. 不能假设各并发进程的执行速度
  2. 并发进程中的某个进程不在临界区时,它不阻止其他进程进入临界区
  3. 并发进程中的若干个进程声请进入临界区时,只能允许一个进程进入
  4. 并发进程的某个进程声请进入临界区时开始,应在有限时间内进入临界区

(2)实现方式
对临界区进行加锁
信号量:sem是一个整数,在sem>=0时可代表并发进程所使用的资源实体数,但sem<0则表示正在等待使用临界区的进程数。sem的初始值应该大于0!信号量的数值仅能由PV原语操作改变。

6、生产者-消费者问题
这里写图片描述

7、进程的通信方式
在不同进程之间传播和交换信息,进程的用户空间时相互独立的,一般而言是不能相互访问的,唯一的例外是共享内存区,系统空间是公共场所,所以内核也可以提供这样的条件,此外,还可以间接访问文件系统进行通信。
这里写图片描述

(1)管道通信(共享内核中的信息)
半双工,只能用于有血缘关系的进程间通信
(2)FIFO(共享文件系统上的某些信息)
以FIFO的文件形式存在于文件系统中,只要可以访问该路径,就能够彼此通过FIFO相互通信。
注意:有名管道的名字存在于文件系统中,内容存放在内存中
(3)共享内存,是最快的通信方式
将同一个内存区映射到共享它的不同进程的地址空间中,这样进程间的通信就不要经过内核,对文件的读写就可以直接使用指针而不需要read/write/lseek等操作。 共享内存与其他的进程间通信最大的优点是:数据的复制只有两次,一次是从输入文件到共享内存区,一次从共享内存区到输出文件。而其他的则是需要复制4次:服务器将输入文件读入自己的进程空间,再从自己的进程空间写入管道/消息队列等;客户进程从管道/消息队列中读出数据到自己的进程空间,最后输出到客户指定的文件中。
基本步骤:
开辟一块内存区域 shmget(key,size,flag);返回共享存储ID
挂载,把ID映射成虚拟地址 shmat(shmid,address,flag) ;返回地址
写入/读取操作
卸载虚拟地址 shmdt;
删除这块共享内存 shmctl
(4)信号量通信(进程和线程间通信均可)
和PV原语实现生产者消费者一样
函数sem_wait();sem_post();
具体实现代码过程参考网络编程博客。

8、死锁问题
(1)起因:并发进程之间的资源争夺。根本原因是系统提供的资源个数小于并发进程所要求的资源数。
(2)产生死锁的必要条件

  • 互斥条件
  • 不剥夺条件
  • 环路条件
  • 部分分配

(3)死锁避免–打破死锁的必要条件
有序的资源分配;
银行家算法

9、线程—轻量级进程
线程时进程的一部分,是系统调度分配的基本单元。线程自己不拥有系统资源,但可以与其他线程共享进程的所有资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值