zoukankan      html  css  js  c++  java
  • 操作系统面试

    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)比较容易实现几个进程对同一程序副本的共享使用。 
      • 缺点:是需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂。 
        现在一般计算机系统中都采用动态重定位方法。
  • 相关阅读:
    linux 查看磁盘空间大小
    linux查看防火墙状态及开启关闭命令
    运行安装mysql 报错 [root@localhost mysql-mult]# ./scripts/mysql_install_db  --defaults-file=conf/3306my.cnf FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_
    linux lsof命令详解
    centos6下无法使用lsof命令"-bash: lsof: command not found"
    服务器创建好后怎样使用远程连接工具链接的一些问题
    mysql在linux下的安装
    jmeter-linux下运行
    【WPF】一组CheckBox的全选/全不选功能
    【WPF】TabControl垂直分页栏/选项卡
  • 原文地址:https://www.cnblogs.com/umrx/p/7625527.html
Copyright © 2011-2022 走看看