操作系统要点

来源:互联网 发布:编程自学怎么开始 编辑:程序博客网 时间:2024/06/06 10:41
  • 操作系统基本特性
    1. 并发
    2. 共享
    3. 虚拟
    4. 异步
  • 操作系统内容分为那几块? 什么叫做虚拟内存,和主存的关系如何?
    操作系统主要组成部分有: 进程和线程的管理,存储管理,设备管理,文件管理。
    虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为4k,物理内存也被分页,每个页大小也为4k,这样虚拟文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。
  • 进程与线程
    进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能福利运行的活动实体。为使多个程序能并发运行,系统必须为每个程序建立进程。
    通常在一个进程中可以包含多个线程,他们可以利用进程所拥有的资源。
    通常把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位。
  • 进程的特征
    1. 动态性
    2. 并发性
    3. 独立性
    4. 异步性
  • 进程的三种状态
    1. 就绪状态
    2. 执行状态
    3. 阻塞状态
  • 进程控制块PCB的作用
    1. 作为独立运行基本单位的标志
    2. 能实现间断性运行方式
    3. 提供进程通信管理所需要的信息
    4. 提供进程调度所需要的信息
  • 线程与进程的区别联系

      1、定义
        进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。(包括程序段,相关数据段,和进程控制块PCB)
      线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
      
      2、关系:一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
      3、区别:主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
      
      4.优缺点:线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

  • 什么是临界区? 如何解决冲突

    每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。

      1:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入;

      2:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待;

      3:进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区;

      4:如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

  • 什么是死锁,条件是什么? 如何避免死锁?
    死锁定义:

        在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。

     产生条件:

        1:互斥条件 – 一个资源一次只能被一个进程使用
        2:请求保持条件 – 一个进程因请求资源而阻塞时,对已经获得资源保持不放
        3:不可抢占条件 – 进程已获得的资源在未使用完之前不能强行剥夺
        4:循环等待条件 – 若干进程之间形成一种头尾相接的循环等待资源的关系
        这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
     
     预防避免死锁的方法
      1:破坏“请求和保持”条件:规定所有进程在开始运行之前,都必须一次性的申请其在整个运行过程所需要的全部资源。
      优点:简单,安全。 缺点:资源严重浪费,恶化了系统的利用率;

      2:破坏“不剥夺”条件:进程逐个的提出资源请求,当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请。
        缺点:实现复杂,代价大,反复地申请和释放资源,而使进程的执行无限的推迟、延长了进程的周转时间增加系统开销、降低系统吞吐量。

      3:破坏“环路等待”条件:将所有的资源按类型进行线性排队,并赋予不同的序号。所有进程请求资源必须按照资源递增的次序提出,防止出现环路。
        缺点:1、序号必须相对稳定,限制了新设备类型的增加2、作业(进程)使用资源顺序和系统规定的顺序不同而造成资源的浪费3、限制了用户编程

      注意:由于互斥条件是非共享设备所必需的,不能改变

原创粉丝点击