二、操作系统进程管理(2)——进程及其实现

5.进程的状态与转换:

    (1)进程的三种基本状态:
        运行态
        就绪态
        阻塞态/等待态
    (2)进程的另外两种状态:
        创建态
        终止态
    (3)进程状态的转换:

  •         创建态->就绪态->运行态->结束态

            就绪态->运行态:进程被调度。
            运行态->就绪态:时间片到,或CPU被其他高优先级的进程抢占。

  •         创建态->就绪态->运行态->阻塞态->就绪态

            运行态->阻塞态:等待系统资源分配,或等待某事件发生(进程自身做出的主动行为)。
            阻塞态->就绪态:资源分配到位,等待的事件发生(被动行为)。

    (4)七态:上面五种 +  挂起就绪态、挂起阻塞态。

        挂起:将进程从内存挂起到外存,暂不参与进程调度。

6.进程控制:

    (1)什么是进程控制?
        实现进程状态转换。
    (2)如何实现进程控制?
        用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。这种不可被中断的操作就是原子操作。
        原语采用“关中断指令”和“开中断指令”实现。
            只允许在核心态下执行的特权指令。
    (3)进程控制相关原语的作用:
        ①更新PCB中的信息。
        ②将PCB插入合适的队列。
        ③分配/回收资源。
    (4)相关原语
        进程的创建(创建原语)
        进程的终止(撤销原语)
        进程的阻塞(阻塞原语)
            阻塞和唤醒要成对出现。
        进程的唤醒(唤醒原语)
        进程的切换(切换原语)

7.进程通信:

    (1)进程通信:进程之间的信息交换。
    (2)进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不允许直接访问另一个进程的地址空间。
    (3)进程通信方式:
        共享存储:通过操作系统提过的共享空间来完成通信。两个进程对共享空间的访问必须是互斥的。
            基于数据结构的共享:速度慢、限制多,低级通信方式。
            基于存储区的共享:速度更快,高级通信方式。


        管道通信:在内存中开辟一个大小固定的缓冲区。
            管道只能采用半双工通信,某一时间段内只能实现单向的传输。若要实现双向同时通信,则需要两个管道。
            各进程要互斥地访问管道。
            数据以字符流的形式写入管道。
            如果没写满,就不允许读。如果没读空,就不允许写。写满时,不允许再写。读空时,不允许再读。
            数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读出数据的情况。


        消息传递:进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换。
            一个格式化的消息可以分为两部分:消息头和消息体。
            消息传递方式:
                直接通信方式:消息直接挂到接收进程的消息缓冲队列上。
                间接通信方式/信箱通信方式:消息要先发送到中间实体(信箱中)。如:计网中的电子邮件系统。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值