计算机基础知识------操作系统

计算机系统概述

计算机基础知识------操作系统_第1张图片

  1. 操作系统的概念
    操作系统 是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。 操作系统是计算机系统中最基本的系统软件。

  2. 操作系统的特征
    I. 并发 CConcurrence)
    并发是指两个或多个事件在同一时间间隔内发生。
    2 . 共享( Sharing) 资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
    3 . 虚拟( Virtual) 虚拟是指把一个物理上的实体变为若干逻辑上的对应物
    4 . 异步( Asynchronism)
    多道程序环境允许多个程序井发执行, 但由于资源有限,进程的执行并不是一贯到底的,而 是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。

  3. 操件系统的目标和功能
    1 . 操作系统作为计算机系统资源的管理者
    2 . 操作系统作为用户与计算机硬件系统之间的接口
    3 . 操作系统用作扩充机器

  4. 单道批处理系统的主要特征如下:
    l )自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
    2)顺序性。 磁带上的各逅作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺 序在正常情况下应完全相同,亦即先调入内存的作业先完成。
    3 )羊道性。 内存中仅有一道程序运行

  5. 多道批处理系统
    多道程序设计技术允许多个程序同时进入内存并允许它们在 CPU 中交替地运行,这些程序 共享系统中的各种软件资源。当一道程序因 1/0 请求而暂停运行时, CPU 便立即转去运行另一 道程序。
    1 )多道。 计算机内存中同时存放多道相互独立的程序
    2 )宏观上并行。 同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行, 但都未运行完毕。
    3 )微观上串行。 内存中的多道程序轮流占有 CPU,交替执行。
    == 多道程序设计技术的实现需要解决下列问题 ==
    1 )如何分配处理器。
    2) 多道程序的内存分配问题
    3 . l/0 设备如何分配。
    4)如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
    == 优点 ==资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐 量大, CPU 和其他资源保持“忙碌”状态。
    缺点:用户响应的时间较快; 不提供人机交互能力

  6. 分时操作系统
    所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给 各联机作业使用。特点:
    1 )同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机 与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
    2)交互性。用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直 接控制程序运行,与同程序进行交互。
    3 )独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人 也在使用这台计算机,好像只有自己单独使用这台计算机一样。
    4)及时性。用户请求自旨在很短时间内获得响应

  7. 实时操作系统
    为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
    若某个动作必须绝对地在规定的时刻(或规定的时间范围)发 生,贝IJ称为硬实时系统
    若能够接受偶尔届反时间规定且不会引起任何永久性的损害, 则 称为软实时系统

  8. 中断和异常的定义
    中断 也称外中断,指来自 CPU 执行指令以外的事件的发生, 如设备发出的 1/0 结束中断时钟中断等。为了支持CPU与设备之间的并行操作。
    异常 也称内中断、例外或陷入 , 指源自 CPU 执行指令内部的事件,如程序的非法操作码、 地址越界、算术溢出 。表示CPU执行指令本身时出现的问题。
    计算机基础知识------操作系统_第2张图片

进程管理

计算机基础知识------操作系统_第3张图片

  1. 进程的概念
    在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可 再现性的特征。为此引入了进程的概念。
    由程序段、相关数据段和 PCB 三部分构成了进程映像
    所谓创建进程,实质上是创建进程映像中的 PCB;而撤销进程,实质上是撤销进程的 PCB。 值得注意的是,进程映像是静态的,进程则是动态的。

  2. 进程的状态与转换
    I )运行态。进程正在处理机上运行。在单处理机环境下,每个时刻最多只有一个进程处于 运行态。
    2)就绪态。进程获得了除处理机外的一切所需资源, 一旦得到处理机,便可立即运行。系 统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列
    3 )阻塞态, 又称等待态。进程正在等待某一事件而暂停运行,如等待某资源为可用(不包 括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。
    4)创建态。进程正在被创建, 尚未转到就绪态。 创建进程通常需要多个步骤: 首先申请一 个空白 的 PCB, 并向 PCB 中填写一些控制和l管理进程的信息;然后由系统为该进程分配 运行时所必需的资源;最后把该进程转入就绪态。
    5)结束态。进程正从系统中消失,可能是进程正常结束或其他原因中断退出运行。

  3. 进程的通信
    1 . 共享存储
    在通信的进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行写/读操作实现 进程之间的信息交换
    2 . 消息传递
    在消息传递系统中,进程间的数据交换是以格式化的消息( Message)为单位的。若通信的 进程之间不存在回直接访问的共享空间,则必须利用操作系统提供的消息传递方法实现进程通 信。
    3 . 管道通信
    所谓“管道”,是指用于连接一个读进 程和一个写进程以实现它们之间的通信的一个共享文件,又名 pipe 文件。 向管’道(共享文件〉提 供输入的发送进程(即写进程),以字符流形式将大量的数据送入(写)管道;而接收管道输出的接收进程(即读进程)则从管道中接收(读)数据。

  4. 线程的基本概念
    引入进程的目的是为了更好地使多道程序井发执行,提高资源利用率和系统吞吐量。而引入 线程的目的则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

  5. 线程与进程的比较
    1 )调度。在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的 操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。在同一进程中, 线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切 换到另一个进程中的线程时, 会引起进程切换。
    2 )拥有资源
    进程都是拥有资源的基本单 位,而线程不拥有系统资源(也有一点儿必不可少的资源
    3)并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,而且多个线程之间也 可以并发执行,从而使操作系统具有更好的并发性,提高了系统的吞吐量。
    4)系统开销 。由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、 I/0 设 备等,因此操作系统所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进 程切换时,涉及当前执行进程 CPU 环境的保存及新调度到进程 CPU 环境的设置,而线 程切换时只需保存和设置少量寄存器内容,开销很小。此外,由于同一进程内的多个线 程共享进程的地址空间,因此这些线程之间的同步与通信非常容易实现,甚至无须操作 系统的干预。
    5 )地址空间和其他资源 (如打开的文件)。进程的地址空间之间互相独立,同一进程的各 线程间共享进程的资源,某进程内的线程对于其他进程不可见。
    6)通信方面。进程间通信 CIPC)需要进程同步和互斥手段的辅助,以保证数据的一致性, 而线程间可以直接读/写进程数据段(如全局变量)来进行通信。

  6. 进程和程序的区别
    1 .程序是永久的,进程是暂时的
    2 . 程序是静态的,进程是动态的
    3 . 进程具有并发性,程序没有
    4 . 进程是基本资源分配单位,程序不是
    5 . 一个程序可由多个进程执行,一个进程可以执行多个程序

  7. 调度的基本概念
    在多道程序系统中, 进程的数量往往多于处理机的个数,因此进程争用处理机的情况在所难免。 处理机调度是对处理机进行分配,从就绪队列中按照一定的算法(公平、高效)选择一个进程 井将处理机分配给它运行,以实现进程井发地执行。

  8. 调度的层次
    1 )作业调度。又称高级调度,其主要任务是按一定的原则从外存上处于后备状态的作业中 挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立 相应的进程,以使它(们)获得竞争处理机的权利。
    2 )中级调度。 又称内存调度,其作用是提高内存利用率和系统吞吐量。 为此,应将那些暂 时不能运行的进程调至外存等待,把此时的进程状态称为挂起态。当它们已具备运行条 件且内存又稍有空闲时,由中级调度来决定把外存上的那些己具备运行条件的就绪进程, 再重新调入内存,并修改其状态为就绪态,挂在就绪队列上等待。
    3 )进程调度。又称低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进 程,将处理机分配给它。

  9. 三级调度的联系
    1 )作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行 的进程挂起,中级调度处于作业调度和l进程调度之间 。
    2)作业调度次数少,中级调度次数略多,进程调度频率最高。
    3) 引进程调度是最基本的,不可或缺。

  10. 进程调度方式
    I )非剥夺调度方式, 又称非抢占方式。 非剥夺调度方式是指当一个进程正在处理机上执行 时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行, 直到该进程完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫的 进程。
    2)剥夺调度方式,又称抢占方式。剥夺调度方式是指当一个进程正在处理机上执行时, 若 有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机 分配给这个更为重要或紧迫的进程。

  11. 典型的调度算法
    1 . 先来先服务( FCFS)调度算法
    按照请求的顺序进行调度。算法简单,但效率低;对长作业比较有利,但对短作业不利(相对 SJF ):有利于 CPU 繁忙型作业, 而不利于 I/0 繁忙型作业。
    2 . 短作业优先(SJF)调度算法
    按运行时间最短的顺序进行调度。非抢占式的,吞吐量搞,开销大,对短作业有利,对长作业不利
    3 . 优先级调度算法
    为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远得不到调度,可以随着时间的推移增加等待进程的优先级。
    4 . 高响应比优先调度算法
    高响应比优先调度算法主要用于作业调度,是对 FCFS 调度算法和 SJF 调度算法的一种综合 平衡,同时考虑了每个作业的等待时间和估计的运行时间。
    非抢占,吞吐量高,开销大,无饥饿问题
    5 . 时间片轮转调皮算法
    将所有就绪的进程按照FCFS排成一个队列,用完时间片的进程排到队列最后。抢占式,开销小,无饥饿问题,为短进程提供了好的响应时间。
    6 . 多级反馈队列调度算法(融合了前几种算法的优点
    设置多个就绪队列1.2.3…,优先级递减,时间片递增。只有等到优先级高的队列为空是才会调度到当前队列中的进程。如果进程用完了当前队列的时间片还未执行完,则会被移到下一个队列。
    抢占式,开销大,对IO型进程有利,可能出现饥饿。

  12. 同步
    多个进程因为合作而使得进程的执行有一定的先后顺序。比如某个进程需要另一个进程提供的消息,获得消息之前进入阻塞态。

  13. 互斥
    多个进程在同一时刻只有一个进程能进入临界区

  14. 同步机制的4个准则
    1.空闲让进
    当没有进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区
    2.忙则等待
    当已有进程进入自己的临界区,其他企图进入临界区的进程必须等待
    3.有限等待
    对要求访问临街资源的进程,应保证该进程能在有限时间内进入临界区
    4.让权等待
    当进程不能进入临界区时,应释放处理机
    临界区 。进程中访问临界资源的那段代码

  15. 为什么需要进程同步
    进程有时候会和其他进程共享一些资源,比如内存、数据库等。当多个进程同时读写同一份共享资源时,可能会发生冲突。因此需要进程同步,多个进程按照顺序访问资源。

  16. 互斥量
    互斥量是内核对象,只有拥有互斥对象的线程才有访问互斥资源的权限。因为互斥对象只有一个,所以可以保证互斥资源不会被多个线程同时访问;当前拥有互斥对象的线程处理完任务后必须将互斥对象交出,以便其他线程访问该资源。

  17. 信号量
    信号量是内核对象,它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。信号量对象保存了最大资源计数和当前可用资源计数。

  18. 事件
    允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务。

  19. 死锁的定义
    是指多个进程因竞 争资源而处于互相等待状态 , 若无外力作用,这些进程都将无法向前推进。

  20. 死锁产生的原因
    1.系统资源不足
    2.进程推进的顺序不当

  21. 产生死锁的必要条件
    互斥条件: 在一段时间内某资源只能被一个进程占有
    请求和保持条件:指进程己经保持了至少一个资源,但又提出了新的资源请求, 而该资源己被 其他进程占有,此时请求进程被阻塞,但对自己已获取的资源保持不放。
    不可剥夺条件指进程已获得的资源,在未使用完之前,不能被剥夺,只能再使用完时,由自己释放
    环路等待存在一种进程资源的循环等待链,链中每个进程已获得的资源同时被链中的下 一个进程所请求。

  22. 死锁的处理策略
    1.死锁预防
    设置某些限制条件,破坏产生死锁的 4 个必要条件中的一个或几个,以防止发生死锁。
    2.避免死锁
    在资源的动态分配过程,使用某种方法防止系统进入不安全状态, 从而避免死锁
    3 . 死锁的检测
    无须采取任何限制性措施,允许进程在运行过程中发生死锁。 通过系统的检测机构及时地检 测出死锁的发生,然后采取某种措施解除死锁。
    4.解除死锁
    当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来。常用的方法有撤销挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程

  23. 什么是饥饿?与死锁有什么差别?
    等待时间给进程推进和响应带来了明显影响,称为进程饥饿
    饥饿不代表系统已经死锁,但至少有一个进程的执行被无限期地推迟了
    差别:
    1 .进入饥饿的进程只有一个,但是死锁必须大于等于两个
    2 .处于饥饿状态的进程可以是一个就绪进程,但是死锁状态的进程必定是阻塞进程

  24. 银行家算法
    主要思想:避免系统进入不安全状态,在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,如果有,则先试行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则拒绝分配上述资源。

  25. 死锁定理
    如果资源分配图是完全可以简化的,则没有死锁

内存管理

计算机基础知识------操作系统_第4张图片

  1. 内存管理的基本原理和要求
    内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充内存,故因具有以下功能:
    1 .内存的分配和回收:实施内存的分配,回收系统或用户释放的内存空间
    2 . 地址变换:提供地址变换功能,将逻辑地址转换为物理地址
    3 .扩充内存:借助于虚拟存储技术或其他自动覆盖技术,为用户提供比内存空间大的地址空间,从逻辑上扩充内存
    4 . 存储保护:保证进入内存的各道作业都在自己的存储空间内运行,互不干扰。
  2. 将用户程序变为可在内存中执行的程序的步骤
    1 .编译:由编译程序将用户源代码编译成若干目标模块
    2 .链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块
    3 .装入:由装入程序将装入模块装入内存中运行
  3. 程序的链接方式有哪些?
    1 .静态链接:在程序运行之前,先把各个目标模块及所需库链接为一个完整的可执行程序,以后不再拆开
    2 . 装入时动态链接:将应用程序编译后所得到的一组目标模块在装入内存时采用边装入边链接的链接方式
    3 .运行时动态链接:直到程序运行过程中需要一些模块时,才对这些模块进行链接
  4. 程序的装入方式有哪些
    1 .绝对装入
    在编译时就知道程序将要驻留在内存的物理地址,编译程序产生含有物理地址的目标代码。不适合多道程序设计
    2 .可重定位装入
    根据内存情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次完成,之后不再改变,也称静态重定位。当操作系统为程序分配一个以某地址为起始地址的连续主存区域后,重定位时将程序中指令和操作数的逻辑地址加上这个起始地址得到物理地址。
    3.动态运行装入
    允许程序运行时在内存中移动位置,把装入模块装入到内存后的所有地址都是相对地址,在程序执行过程中每当访问相应指令或数据时,才将要访问的程序或数据的相对地址转换为物理地址。
  5. 覆盖与交换
    1 . 覆盖
    把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位,把程序执行时并不要求同时装入内存的覆盖组成一组,成为覆盖段,这个覆盖段分配到同一个存储区域,这个存储区域称为覆盖区,它与覆盖段一一对应。
    为了解决内存容量太小的问题,打破了必须将一个程序全部信息装入内存后才能运行的限制
    2 . 交换
    把暂时不用的某个程序及数据部分从内存移到外存中去,以便腾出必要的内存空间;或者把指定的程序或数据从外存读到相应内存中,并将控制权交给他。中级调度就是交换技术
    3 . 区别
    a.交换技术主要在不同进程(或作业)之间进行,而覆盖则用于同 一个程序或进程中
    b.与覆盖技术相比,交换技术不要求程序员给出程序段之间的覆盖结构
    c.覆盖技术已出历史,而交换技术仍具有较强的生命力
  6. 内存连续分配管理方式有哪些?
    1 . 单一连续分配
    内存在此方式下分为系统区和用户区,系统区仅供操作系统使用,通常在低地址部分:用户 区是为用户提供的、除系统区之外的内存空间。这种方式无须进行内存保护。因为内存中永远只 有一道程序,因此肯定不会因为访问越界而干扰其他程序。
    这种方式的优点是简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持。缺点是 只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率极低。
    2 .固定分区分配
    固定分区分配是最简单的一种多道程序存储管理方式,它将用户内存空间划分为若干固定大小的区域,每个分区只装入一道作业。当有空闲分区时,便可再从外存的后备作业队列中选择适 当大小的作业装入该分区,如此循环。
    这种分区方式存在两个问题: 一是程序可能太大而放不进任何一个分区中,这时用户不得不 使用覆盖技术来使用内存空间; 二是主存利用率低, 当程序小于固定分区大小时, 也占用一个完 整的 内存分区空间,这样分区内部就存在空间浪费,这种现象称为 内部碎片。
    固定分区是可用于多道程序设计的最简单的存储分配,无外部碎片,但不能实现多进程共享 一个主存区,所以存储空间利用率低。
    3 .动态分区分配
    动态分区分配又称可变分区分配,是一种动态划分内存的分区方法。这种分区方法不预先划 分内存,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进 程的需要。因此,系统中分区的大小和数目是可变的。
    动态分区的分配策率。考虑以下几种算法
    1 ) 首次适应( First Fit)算法。空闲分区以地址递增的次序链接。 分配内存ll才顺序查找,找 到大小能满足要求的第一个空闲分区。
    2)最佳适应 (Best Fit)算法。空闲分区按容量递增的方式形成分区链,找到第一个能满足 要求的空闲分区。
    3 )最坏适应(Worst Fit)算法。又称最大适应( Largest Fit)算法, 空闲分区以容量递减的 次序链接,找到第一个能满足要求的空闲分区,也就是挑选出最大的分区。
    4)邻近适应 (Next Fit)算法。又称循环首次适应算法,由首次适应算法演变而成。 不同之 处是,分配内存时从上次查找结束的位置开始继续查找。
  7. 非连续分配管理方式
    太多了 建议直接看书
  8. 页面置换算法有哪些
    1 . 最佳( OPT)直换算法
    最佳 置换算法选择的被淘汰页面是以后永不使用的页面,或是在最长时间 内不再被访问的页面,以便保证获得最低的缺页率。
    2 . 先进先出(FIFO)页面直换算
    优先淘汰最早进入内存的页面,即在内存中驻留时间最久的页面。
    3 . 最近最久未使用 (LRU)直换算法
    选择最近最忙时间未访问过的页面予以淘汰, 它认为过去一段时间内未访问过的页面, 在最 近的将来可能也不会被访问 。
    4 . 时钟(CLOCK)直换算法
    简单的 CLOCK 算法给每,,民关联一个附加位,称为使用位。当某页首次装入主存肘,将该帧 的使用位设置为 l : 当该页随后再被切问到时,其使用位也被置为 1。 对于页替换算法,用于替 换的候选,,唬集合可视为一个循环缓冲区 , 井有一个指针与之相关联。当某一页被替换时, 该指针 被设置成指向缓冲区中的下一,,晓。 当需要替换一页时, 操作系统扫描缓冲区,以查找使用位被置 为 0 的一1pyi。每当遇到一个使用位为 l 的,,民时, 操作系统就将该位重新置为 0: 若在这个过程开 始时, 缓冲区中所有帧的使用位均为 0, 则j在择遇到的第一个帧替换; 若所有帧的使用位均为 1. 则指针在缓冲区中完整地循环一周,把所有使用位都置为 0, 并停留在最初的位置上, 替换眩,,庆 中的页。由于该算法循环检查各页面的情况, 因此称 CLOCK 算法, 又称最近未用( Not Recently Used, NRU ) 算法。

你可能感兴趣的:(计算机相关知识)