码迷,mamicode.com
首页 > 其他好文 > 详细

操作系統-進程管理(習題)

时间:2020-01-25 23:24:27      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:文件   数据结构   正是   传递   err   入口   running   资源   一个   

操作系统-进程管理(习题)

本文将回答一下课后的习题

  1. 程序并发执行为什么会失去封闭性和再现性

    答:在并行执行程序时,系统资源由多个程序所共享,则这些资源必然由这些程序来改变。程序执行时,必然会受到其他程序的影响。正是因为如此,不能以程序作为作为描述其执行过程的基本单位,催生了后来进程及进程上下文的出现。

  2. 什么叫进程的并发性?

    答:进程的并发性是指操作系统中可以同时运行多个进程,CPU虽然一次只能执行一个进程,但可以在多个进程之间进行快速的切换,宏观时间上来看就是多个进程在并行执行。

  3. 试说明PCB的作用,为什么说PCB是进程存在的唯一标志?

    答:进程是由PCB、程序和数据集合构成的,PCB的存在体现了进程的动态性。

    进程包含了进程标识符、处理机状态(由处理机的各种寄存器的内容组成)、进程调度信息和进程控制信息。

    PCB的存在是进程可以并发执行的关键,进程从被唤醒到被挂起和被切换都需要PCB记录信息。

    在进程被创建时,PCB最早被创建,进程被撤销时,PCB最晚被释放。所以可以说PCB是进程存在的标志。

  4. 进程的创建包含了哪些过程

    (1) 申请空白PCB。为新进程申请一个唯一的进程标识符,在PCB集合中申请一块空白PCB。

    (2) 为新进程分配资源。主要是新进程的程序、数据及用户栈所需的内存空间。

    (3) 初始化PCB。主要是将各种信息填入PCB中,如:进程标识符、父进程标识符、处理机状态,将程序计数器指向程序的入口地址,栈指针指向栈顶,处理机控制信息,新进程设置为就绪状态,新进程的优先级。

    (4) 将新进程的PCB插入就绪队列。

  5. 进程的高级通信方式有哪几种?

    (1) 共享存储器系统:相互通信的进程共享某些数据结构或存储区,进程之间通过这些空间通信。

    (2) 消息传递系统:分为直接通信方式和间接通信方式。直接通信即两个进程之间直接发送message。间接通信即发送进程将message发送到信箱。信箱又分为私有信箱、公有信箱和共享信箱。发送进程发送消息时,先在自己的内存中申请一发送区,将要发送的正文和其他一些信息填入其中。发送原语则负责根据消息长度设置一个缓冲区,即“信箱”。将要发送的信息复制到其中。接收进程再从缓冲区里复制信息。

  6. Linux系统的进程有几种状态?

    (1) TASK-RUNNING状态。包含了运行状态和就绪状态,具体是哪一种要靠是否占用了CPU资源来区分。

    (2) TASK-INTERRUPTIBLE状态。进程正在等待某些事件。可中断状态的进程可以被信号唤醒进入就绪状态等待被调入。

    (3) TASK_UNINTERRUPTIBLE状态。因为某些硬件资源没满足而中断的进程。

    (4) TASK_ZOMBIE状态。僵死状态。由于某些原因进程被终止,进程所有的资源都已经被释放,但是PCB信息还被保留。这种状态就称为僵死状态。

    (5) TASK_STOPPED状态。暂停状态。一般由运行状态转换而来,等待某种特殊处理。

  7. 在读者-写者问题中,修改问题的同步算法,当有写进程到达时,后续读进程必须等待,而不管是否有读进程在读文件。试写出相应的程序段。

    semaphore mutex; //mutex是对文件进行读\写操作的信号量。
    
    int readcount = 0, arrive = 0;//arrive是表示写进程是否到达的变量,0表示未到达,1表示到达。
    
    void writer() {  
     arrive = 1;
     wait(mutex);
     写操作...
     signal(mutex);
     arrive = 0;
    }
    
    void reader() {
     if (arrive == 1) return; 
     if (readcount == 0) {
         wait(mutex);
     }
     readcount++;
     读操作...
     readcount--;
     signal(mutex);
    }

操作系統-進程管理(習題)

标签:文件   数据结构   正是   传递   err   入口   running   资源   一个   

原文地址:https://www.cnblogs.com/lunar-ubuntu/p/12233522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!