2020 操作系统第一天复习(习题总结)

2020.12.9 操作系统系统

系统软件 临界区管理的尝试 进程状态图 进程映像

I:属于系统软件的是?

答案:操作系统

系统软件是负责管理系统中各种独立的硬件。通俗的说就是能够直接控制硬件的。

硬件层负责提供各种可计算的资源,包括处理器,存储器,寄存器和各种I/O设备。

主要有操作系统,数据库系统,语言处理程序,支撑软件。

操作系统有dos,Windows。Unix,OS/2。操作系统负责管理各种各样的资源,包括处理器管理,文件管理,设备管理,存储器管理四项功能。

数据库系统

语言处理程序比如汇编语言汇编器,C语言编译器,连接器等等。

支撑软件,也叫系统辅助处理程序。主要有编辑程序,调试程序,装备和连接程序。

II:临界区管理只能通过软件管理?

答案:错误

临界区管理的软件算法:Perterson算法。

先开始不谦让,最后进去的时候再谦让一把

// peterson 算法
inside[0]=false;inside[1]=false;
enum{0,1} turn;
cobegin;
process PO(){
    inside[0]=true;
    turn=1;
    while(inside[1] && turn==1);
        临界区
        inside[0]=false;
}

process P1(){
    inside[1]=true;
    turn=0;
    while(inside[0] && turn==0)
        临界区
        inside[1]=false;
}

临界区管理的硬件设施:第一 关中断 第二 测试并建立指令 第三 对换指令

在单处理器计算机系统中,并发程序不能同时执行,只会交替的执行。为了保持互斥性,仅仅需要保证进程不被中断。而我们主要有两种方式来实现临界区管理,一种是关中断,还有一种是测试并建立指令。

  • 关中断。在进程进入临界区时关中断,在进程退出临界区时开中断
  • 测试并建立指令。用硬件所提供的“测试并建立”机器指令(Test and Set),可以把这一条指令看做是函数。由于TS指令是不可分割的指令,所以可以保证临界区管理的正确性。
bool  TS(&x){
    if(x){
        x=false;
        return true;
    }
    else{
        return false;
    }
}
//处理程序
bool s=true;
cobegin
void process(){
    while(!TS(x));
        临界区
        s=true;
}
coend
  • 对换指令,交换两个字之间的内容

在IntelX86中,对换指令被称之XCHG

void swap(bool &a, bool &b){
    bool temp=a;
    a=b;
    b=temp;
}
//处理程序
// lock =false 表示现在没有程序
bool lock=false;
cobegin
void process(){
    bool s=true;
    do{
        swap(&s,&lock);
    }while(lock);
    临界区
    swap(&s,&lock);
}

III:进程的调度

答案:在分时系统中,一个正在运行的进程的时间片如果终结,那么该进程会转入就绪状态。

进程是对处理器的抽象

文件是对设备的抽象

虚存是对主存的抽象

三态模型

五态模型:添加了new 和exit 终止态

七态模型:增加两个挂起状态,将挂起的进程放到磁盘中

  • 画图 先画出三态图,然后再画出终止态(从运行态指出去),再画出挂起就绪态,和挂起等待态(和挂起态和就绪态是双向,同时挂起等待也有指向挂起就绪,运行也有指向挂起运行态,)最后是新建态,有两个提交指向就绪态。

进程的描述和组成

(1) 进程的映象

由于进程的状态在不断的发生改变,某时刻进程的内容及其状态的集合被称为进程映象(process image),包括以下的一些元素:

  • 进程控制块PCB
  • 进程程序块
  • 进程核心栈
  • 进程数据块 进程控制块是进程的私有地址空间,存放各种私有数据,用户栈也要在数据块中开辟,用于函数调用时候存放栈帧,局部变量等参数。(堆)

如果只具体前面的三条,而共享用户地址空间。那么就称为“用户进程”,如果完全没有用户空间,那么就称为”内核线程“。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值