• 操作系统面试


    1.进程,线程,管程,协程

    进程:

    1.在非多线程OS中,进程是资源分配调度和独立运行的基本单位。关键字:独立运行,拥有资源。

     

    2.在多线程OS中,进程只是资源分配的基本单位,而不是独立运行的基本单位,多线程OS把线程作为是资源调度和独立运行的基本单位

    线程:

    多线程OS把线程作为是资源调度和独立运行的基本单位

    管程:

    管理共享资源的数据结构的资源管理程序称为管程。

    协程:

    又称微线程,纤程。英文名Coroutine。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。

    经典问题:生产者消费者问题,哲学家就餐问题

    2.处理机调度算法

    1.先来先服务(FCFS)

    2.短作业优先(SJF)

    3.优先级调度算法(PSA)

    4.高响应比优先调度算法(HRRN)

    1.什么是死锁?

    银行家算法:一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系银行家算法银行家算法统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。

    线程1锁住A,等待B

    线程2锁住B,等待A

    2.自旋锁,互斥锁?

    3.静态重定位和动态重定位?

    • 静态重定位:是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。 
      • 优点:是无需增加硬件地址转换机构,便于实现程序的静态连接。在早期计算机系统中大多采用这种方案。 
      • 缺点:(1)程序的存储空间只能是连续的一片区域,而且在重定位之后就不能再移动。这不利于内存空间的有效使用。(2)各个用户进程很难共享内存中的同一程序的副本。 
    • 动态重定位:是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。 
      • 优点:(1)程序占用的内存空间动态可变,不必连续存放在一处。(2)比较容易实现几个进程对同一程序副本的共享使用。 
      • 缺点:是需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂。 
        现在一般计算机系统中都采用动态重定位方法。
  • 相关阅读:
    JUC回顾之-可重入的互斥锁ReentrantLock
    java基础知识回顾之java Thread类学习(十二)-- 线程中断
    mknod命令
    一个公益水塘引发的纠纷
    对cgic的理解——name选项
    linux的fwrite()使用方法,当前时间写入文本的程序
    /etc/resolv.conf文件详解
    关于函数strtok和strtok_r的使用要点和实现原理
    shell视频
    进程一些命令pstree,ps,pstack,top
  • 原文地址:https://www.cnblogs.com/umrx/p/7625527.html
Copyright © 2020-2023  润新知