美文网首页
操作系统笔记

操作系统笔记

作者: 夏洛伊de风 | 来源:发表于2019-05-15 00:27 被阅读0次

0.进程三种状态图

u=2354234515,1090077856&fm=26&gp=0.jpg

1.有N个进程共享同一临界资源,如用信号量机制,实现对一临界资源的互斥访问,则信号量的变化范围是?

A:1----N B:1----(-N) C:1----(N-1) D:1----[-(n-1)]

D 。当没有进程使用时是1 且最多是1.
当有进程申请时便减1 第一个申请是0 第二个是-1 类推可得D

2.设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()。

A一个进程进入了临界区,另一个进程等待
B没有一个进程进入临界区
C两个进程都进入临界区
D两个进程都在等待

D互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进程进入临界区;
另一个进程准备进入临界区时,mutex - 1 = -1,mutex < 0时将该进程挂起到mutex的列表中,等待被唤醒。
因此一个进程已经进入临界区,另一个进程在等待。

3.下面关于线程的叙述中, 正确的是( )。

A.不论是系统支持线程还是用户级线程, 其切换都需要内核的支持。
B.线程是资源的分配单位, 进程是调度和分配的单位。
C.不管系统中是否有线程, 进程都是拥有资源的独立单位。
D.在引入线程的系统中, 进程仍是资源分配和调度分派的基本单位。

C

4.在下面的叙述中, 正确的是( )。

A.引入线程后, 处理机只在线程间切换。
B.引入线程后, 处理机仍在进程间切换。
C.线程的切换, 不会引起进程的切换。
D.线程的切换, 可能引起进程的切换。

D 属于同一进程的多个线程之间的切换不会引起进程的切换,只有属于不同进程的线程之间的切换才会引起进程的切换。

5.当一进程因在记录型信号量S上执行P(S)操作而被阻塞后,S的值为()。

A>0
B<0
C≥0
D≤0

对于记录型信号量,当 s<0 的时候,请求进程会阻塞
对于整型信号量,当s<=0的时候,请求进程不会阻塞,而是进入盲等状态
记录型信号量 S=0表示资源全部用完,没有阻塞。选B
看看记录型信号量的wait(S)的代码,就明确了。
既然执行P(S)操作能被阻塞(block),说明if语句的判断为真,所以S<0。

procedure wait(S)
    var S:semaphore;
    begin
        S.value:=S.value-1;
        if S.value<0 then block(S,L);
   end

6.当一进程因在记录型信号量S上执行V(S)操作而导致唤醒另一进程后,S的值为()。

A>0
B<0
C≥0
D≤0

D唤醒另一进程,说明有进程可被唤醒,就是说有进程在等待进行临界区,若V操作前只有一个进程在等待,则V操作之后S=0,若V操作前有多个进程在等待,是V操作之后S<0,所以,综合来说,S<=0
①记录型信号量不会出现“忙等”的现象,就是S<=0时不会不停while循环尝试,所以题目说是唤醒另一个进程
②记录型信号量有一个进程链表指针L,V(S)之后,判断是否S<=0,是的话,就说明等待队列上有进程,所以就wakeup(S.L)唤醒一个等待队列里的进程。目的是提醒这个进程可以占用刚刚释放掉的这个资源了。记录型信号量不会忙等,就是因为采用了这种机制。
看看记录型信号量下面这段代码就更明确了。
既然执行V(S)操作能导致唤醒另一进程,说明if语句的判断为真,所以S<=0。
跟唤醒另一进程是否又P(S)没关系,后面的过程不考虑了。

procedure signal(S)
    var S:semaphore;
    begin
        S.value:=S.value+1;
        if S.value≤0 then wakeup(S,L);
    end

7.如果有3个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的应设置为()。

A.3
B.2
C.1
D.0

正确答案:B
解析:信号量的初值应设为与最多允许进入互斥段的进程数相同,所以为2

8.在下列解决死锁的方法中,属于死锁预防策略的是 ()

A.银行家算法
B.资源静态分配
C.剥夺资源法
D.资源分配图化简法

正确答案:B
银行家是来避免死锁的
剥夺资源法解除死锁
资源分配图化简法检测死锁
资源静态分配,摒弃“请求和保持” 条件,预防死锁

9.某系统中有3个并发进程,都需要同类资源4 个,试问该系统不会发生死锁的最少资源数是:

A9
B10
C11
D12
B

三个进程1、2、3的执行都需要A、B、C、D四个资源,那么最少的分配情况就是,我给你3个A,3个B,3个C,1个D,然后你们三个进程分别得到了ABC,差个D就可以进行任务了,然后三个进程就去抢夺这个D,而这个过程是不会发生死锁的。
抢夺资源这个过程本身不会发生死锁,因为资源是一整块的,可以用原子性来理解,所以不存在一个进程占有这个资源的一半的这种情况。

而当D被其中一个进程占用后,其他两个进程是无法进行资源抢占的,所以就阻塞等待直到资源释放,再抢夺再等待
死锁的发生是因为:我进程1要执行一个任务,这个任务同时需要资源A、B,而我进程1在抢占了A资源后要抢占B时发现B已经被另一个进程抢占了,这个时候另一个进程又不放手资源B,所以就僵持到天亮

10.某车站售票厅, 任何时刻最多可容纳 20 名购票者进入, 当售票厅中少于 20 购票者时, 则厅外的购票者可立即进入, 否则需在外面等待。 若把一个购票者看作一个进程, 请用P、 V 操作管理这些并发进程时, 应怎样定义信号量? 写出信号量的初值以及信号量各种取值的含义。

答: 设置一个信号量 S, 表示售票厅里还可以容纳的人数, 初值为 20。 每个购票者的
描述如下:

  Semaphore S=20;
    Buyer()
    { 
        wait(S);
        进入售票厅;
        购票;
        退出售票厅;
        signal(S);
    }

11.理发店里有一位理发师、 一把理发椅和 N 把供等候理发的顾客坐的椅子。 如果没有顾客, 理发师便在理发椅上睡觉。 当一个顾客到来时, 它必须叫醒理发师。 如果理发师正在理发时又有顾客来到, 如果有空椅上可坐, 顾客就坐下来等待, 否则就离开理发店。

答: 本题使用 3 个信号量和一个控制变量: 控制变量 waiting 用来记录等候理发的顾客
数, 初值为 0; 信号量 customers 用来记录等候理发的顾客数, 并用作阻塞理发师进程, 初
值为 0; 信号量 barbers 用来记录正在等候顾客的理发师数, 并用作阻塞顾客进程, 初值为 0;
信号量 mutex 用于互斥, 初值为 1。 同步算法描述如下:

semaphore customers=0; /*等候理发的顾客数*/
semaphore barberers=0; /*等候顾客的理发师数*/
semaphore mutex=1;
int waiting=0;
main()
{
    cobegin
    barbers();
    customers();
    coend
} 
barber()
{ 
    while(true)
    {
        wait(customers); /*是否有等候的顾客*/
        wait(mutex);
        waiting=waiting-1; /*顾客数减 1*/
        signal(barbers); /*理发师开始理发*/
        signal(mutex);
        理发;
    }
}
customer()
{ 
    wait(mutex);
    if(waiting<N)
    { 
        waiting=waiting+1; /*若有空椅子, 等候的顾客数加 1*/
        signal(customers);
        signal(mutex);
        wait(barbers);
        坐下等候服务;
    } 
    else
    {
        signal(mutex); /*无空椅子则离开*/
    } 
}
2019426-230209.jpg
2019426-230818.jpg

相关文章

  • 面试CS基础之操作系统

    前言 北大《操作系统原理》课堂笔记,原文首发于个人博客,大纲如下: 操作系统概述 操作系统运行环境 进程线程模型 ...

  • TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工

    笔记本电池是针对 Windows 操作系统进行了高度优化的,当我在笔记本电脑中使用 Windows 操作系统时,我...

  • 个人操作系统及如何升级

    《财富自由之路》阅读笔记·9-12·个人操作系统及如何升级 1、个人操作系统 跟电脑一样,人脑也有操作系统。 人脑...

  • 操作系统第一章课堂记录及心得体会

    一、课堂笔记 第一章、操作系统引论 1.1 操作系统的目标、作用和模型 1.2 操作系统的发展过程 1.3 操作系...

  • 操作系统

    操作系统期末预习笔记 whye 本课程教学采用的是32位操作系统 什么是操作系统 通用图灵机:操作+数据等于处理结...

  • 操作系统笔记0-前言

    前言 主要记录大三学习操作系统的整理笔记。 操作系统(英语:operating system,缩写作 OS)是管理...

  • 300-10 《终生受用的阅读操作系统》笔记

    李笑来老师的第二堂课,《终生受用的阅读操作系统》笔记整理如下。 先说一下什么是操作系统。电脑的操作系统,主要包括以...

  • 第9天续,进程

    @(python)[笔记] 目录 一、什么是进程 1.1 进程的概念 进程的概念起源于操作系统,是操作系统最核心的...

  • php+mysql

    php笔记 导读 wamp集成开发环境w:windows 操作系统 mamp lampa:apac...

  • 操作系统

    操作系统学习笔记 我们老师推荐的教材: 计算机操作系统教程,张尧学,史美林,清华大学出版社计算机操作系统,汤子灜等...

网友评论

      本文标题:操作系统笔记

      本文链接:https://www.haomeiwen.com/subject/euqcnqtx.html