操作系统
1. 进程的有哪几种状态,状态转换图,及导致转换的事件。
就绪 运行 阻塞
1. 就绪->运行: 进程调度. 当进程获得了除cpu之外的一切所需资源,一旦得到cpu即可运行. 2. 运行->就绪: 当占用cpu的进程时间片用完后,不得不让出cpu.(或者在可剥夺的系统中,当有更优先级的进程就绪时,进程调度会将正在运行的进程强行转换为就绪,让更高优先级的进程执行) 3. 当进程正在等待某一事件(如I/O操作)而暂停运行,这时即使CPU空闲,进程也不能运行 4.当进程等待的事件到来时,如IO操作结束或者中断结束时,中断处理程序需把相应进程的状态转换为就绪状态
2. 进程与线程的区别。
答: 1. 意义不同: 进程是程序实体的运行过程,是系统进行资源调度分配的一个独立单位,引入目的是为了使多个程序可以并发执行,以提高系统的资源利用率和吞吐量. 线程是比进程更小的可独立运行的基本单位.引入目的是为了减少程序并发执行过程中的开销,提升OS并发效率
2.调度方面: 在引入线程的OS中,线程是独立的调度和分派单位,而进程只是作为资源的拥有单位,在此线程不拥有资源(或者只是拥有很少的一部分资源,但可以访问所隶属的进程资源).
3.并发性: 进程可以并发,而一个进程内部的多个线程也可以并发
4.创建或者撤销进程时系统要为之创建或回收PCB以及系统资源等,而创建撤销切换线程只需要少量寄存器的保存与恢复 工作,不涉及存储器管理方面的工作,所以开销小
5.通信方面: 进程通信比较相比 在同一进程中的多个线程之间互相通信要麻烦一点. 线程通信由于共享地址空间,所以通信同步比较方便.而进程的通信则通过 共享空间 消息传递 管道通信 开销相对来说都比较大
3. 进程通信的几种方式。
共享空间: 在对通信的进程之间有一块可直接访问的共享空间,通过对这片共享空间进行读写操作实现进程之间的信息变换
管道通信:向pipe文件(共享文件)提供输入的发送进程(写进程),以字符流的形式将大量数据送入写管道,而接收方则从管道里面接收数据. (管道必须提供三个协调能力: 互斥 同步 确定对方存在)(半双工通信 数据只能单向流动)
消息传递: 利用 系统提供的消息传递方法(发送消息和