> 文章列表 > 操作系统学习笔记

操作系统学习笔记

操作系统学习笔记

文章目录

  • 操作系统
    • 虚拟内存
    • 缓存机制
    • CPU性能指标
    • 进程、线程
    • 文件管理系统

操作系统

  1. 操作系统是控制应用程序的执行,并充当应用程序和计算机硬件之间的接口。
  2. 在计算机系统中,处于最外层的是(应用软件) 。
    • 面向用户的就是外层的,计算机越基础越底层的就是内层
    • 从内到外, 硬件系统,操作系统,支撑软件,应用软件。
  3. 操作系统(Operating System,OS)是计算机的灵魂,是一组包含许多模块的计算机程序。它能够在计算机中完成管理、调度、控制计算机中硬件和软件资源,合理地组织计算机的工作流程,使计算机发挥更大的效能。除此之外,操作系统还负责解释用户对计算机的管理命令,使它转化为计算机实际的操作,并为用户提供使用方便和可扩展的操作计算机环境及界面。计算机的用户是通过操作系统来与计算机沟通的。
    操作系统学习笔记
  4. 操作系统的作用:
    从用户角度看:OS是用户与计算机硬件系统之间的接口
    从计算机资源看,OS是计算机资源的管理者
    从功能扩充看,增加了OS的计算机,成为功能更强,使用更方便的扩充机器或虚机器
  5. 操作系统的主要职能是管理、调度、协调计算机的各部分工作,更有效地分配计算机系统的硬件和软件资源,使计算机发挥更大的效能,并为用户提供一个良好的工作环境和友好的接口。没有操作系统,人们就很难操作和使用计算机。操作系统的主要功能分为4大类,即处理机管理、存储管理、文件管理和设备管理。

(1)处理机管理
CPU(处理机)是操作系统中最重要的资源之一,就如同人的大脑一样,控制、指挥计算机的运行,所有程序都需要CPU为其工作。因此,CPU是计算机系统中争夺最激烈的资源。
在多道程序或多用户环境下,允许多个程序同时运行,需要解决多任务对CPU的分配调度策略、分配实施和资源回收问题。
操作系统对CPU的管理原则是:当多个程序同时运行时,操作系统根据一定的算法和优先级调度原则,首先让其中一个优先级高的程序先运行;若该程序运行结束,或者因等待某个事件(如程序需要输入设备输入数据,输入设备又被其他程序占用)而暂时不能运行时,就把CPU的使用权交给另一个程序;当出现了比当前占用CPU使用权的程序优先级更高、更重要的程序时,则强行剥夺正在使用CPU的程序的CPU使用权,并将该程序挂起。等程序运行完毕,再去运行被挂起的程序。系统中的多个程序同时工作,交替地占用CPU,并与外部设备并行运行,大大提高了CPU及其外设的利用率。

(2)存储管理
操作系统对内存的管理工作主要就是根据用户程序的要求为其分配内存空间。当用户的程序开始运行时,操作系统会为其分配内存空间,进行地址的变换,并根据需要不断调整。当多个用户程序同时被装入内存后,操作系统会提供安全措施,保证各用户的程序和数据互不干扰。当用户的程序运行结束时,操作系统会及时收回该程序所占用的存储空间,以便再装入其他程序。

(3)文件管理
文件管理的任务就是要对存放在计算机中的文件进行组织管理、提供方便的存取和文件的安全保证机制,实现按名存取,并提供一套方便使用文件的操作命令。计算机对文件的组织管理和操作都是由文件系统完成的。当用户在计算机中建立一个文件时,用户不必考虑如何保存文件内容以及文件存放的实际位置,操作系统会把文件保存到合适的位置。当用户需要使用文件时,操作系统会通过文件名把文件内容调出供用户使用。

(4)设备管理
现代计算机系统中都配备了许多设备,每台设备的性能和操作方式都不相同,操作系统设备管理的主要任务就是对CPU和内存以外的各种硬件资源进行有效地管理,为用户提供方便的操作,从而提高设备的利用率。 除此之外,操作系统还提供一些服务管理的功能,如提供系统设置、错误检测、网络连接等其他基本的系统功能,为使用者提供方便管理和使用计算机的工具。

  1. 计算机进程的控制通常由原语完成。操作系统中有一组不能被系统中断的特殊系统调用,称为(原语)。

    原语强调的是 某个操作或者指令集合 的连续性和不可中断性;类似于数据库的事务,集合中的指令要么一个也不执行,要么全部执行

  2. 在文件系统中,以下不属于文件保护的方法是读写之后使用关闭命令
    属于文件保护方法是:口令、存取控制、用户权限表

    文件保护通过口令保护、加密保护、访问控制实现。 ①口令是指用户在建立一个文件是提供一个口令,系统为其建立FCB 时附上相应口令,同时告诉共享该文件的其他用户。用户请求访问时必须提供相应的口令。这种方法时间和空间的开销不多,缺点是口令直接存取在系统内部,不够安全。 ②密码是指用户对文件进行加密,文件被访问时需要使用密钥,此方法保密性强,节省了存储空间,但是编码和译码需要花费一定的时间 ③访问控制:在每个文件的FCB (或索引节点)中增加一个访问控制列表(ACL),该表中记录了各个用户可以对该文件执行哪些操作。

  3. 进程控制块中,主要由处理器中各个寄存器内容构成的是(处理器状态信息)。

    考察操作系统的进程控制块。
    在进程控制块中,主要包括4方面用于描述和控制进程运行的信息,分别是进程标识符信息、处理机状态信息、进程调度信息和进程控制信息。
    其中,处理机状态信息主要是由处理机各种寄存器中的内容所组成。
    处理机在运行时,许多信息新放在寄存器中,当处理机被中断时,所有这些信息都必须保存在被中断进程的PCB中,以便在该进程重新执行时,能从断点继续执行。
    因此在进程控制块中,主要由处理器中寄存器内容构成的是处理器状态信息

  4. 操作系统在计算机系统中处于(计算机硬件和用户之间)的位置。

  5. 在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于(进程自身和进程调度策略)。

操作系统调度策略决定了进程什么时候占用处理器和能占用多长时间,例如时间片轮转法,就决定单个进程执行的时间单位,优先级调度决定了下一次执行哪个进程。

  1. 在分段管理(segmentation)中(以段为单位分配,每段是一个连续存储区)【段内连续,段间可以不连续】
  2. 分时系统的用户具有独占性,因此一个用户可以独占计算机系统的资源。
  3. 在 Windows 中关闭窗口的组合键是 Alt+F4

虚拟内存

  1. 虚存容量仅受外存容量的限制。❌

    虚存容量=min(内存容量+外存容量,2^N)(N为计算机的地址总线的长度)

  2. 虚拟内存隔离了各个进程的内存空间
  3. 虚拟内存可以防止应用程序直接访问物理地址。
  4. 虚拟内存是windows下的定义,swap是Linux下的定义,二者有区别

    windows:虚拟内存
    linux:swap分区
    windows即使物理内存没有用完也会去用到虚拟内存,而Linux不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区)
    swap类似于windows的虚拟内存,不同之处在于,Windows可以设置在windows的任何盘符下面,默认是在C盘,可以和系统文件放在一个分区里。而linux则是独立占用一个分区,方便由于内存需求不够的情况下,把一部分内容放在swap分区里,待内存有空余的情况下再继续执行,也称之为交换分区,交换空间是其中的部分
    windows的虚拟内存是电脑自动设置的
    Linux的swap分区是你装系统的时候分好的

  1. 在多进程的系统里,一个进程已经占有足够的资源,如果还占有更多的资源可能会引起什么现象?饥饿死锁

    1:饥饿是指一个可运行的进程尽管能继续执行,但被调度程序无限期地忽略,而不能被调度执行的情形。
    2:死锁是两个或两个以上的进程其中每个进程都在等待其它进程做完某些事而不能继续执行。
    3:互斥是当一个进程在临界区访问共享资源时,其它进程不能进入该临界区访问任何共享资源。
    4:同步比较好理解
    题目中说一个进程已经占有很多资源了,它还需要更多的资源,所以在没得到这些资源之前,它所占有的这些资源不能得到释放,其它进程就无法获得这些资源,而改程序所需要的资源也很可能被其它进程所占有,因此造成死锁;
    顺便复习下死锁产生的四个必要条件:
    互斥条件:一个资源每次只能被一个进程使用
    请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
    不剥夺条件:进程已获得的资源在未使用完之前,不能强行剥夺
    循环等待条件:若干进程之间形成头尾相接的循环等待资源关系
    相应的预防措施:
    采用静态资源分配策略,破坏部分分配条件
    允许进程剥夺其它进程的资源,破坏不可剥夺的条件
    采用资源有序分配,破坏环路条件
    注意:互斥条件是无法被破坏的

缓存机制

  1. 缓冲机制是用空间换时间。
  2. 节省系统内存不是设备管理中引入缓冲机制的主要原因。
  3. 引入缓存机制的原因:
    • 缓和CPU和I/O设备间的速度不匹配问题
    • 减少对CPU的中断频率和放宽对CPU响应时间的限制
    • 提高CPU和I/O设备间的并行性

CPU性能指标

  1. 封装形式不能作为衡量CPU的性能指标。CPU封装技术的发展方向以节约成本为主。

  2. 衡量CPU的性能指标:
    工作频率:主频(时钟频率,CPU运算和处理数据的速度),外频(主板的运行速度),倍频系数;
    缓存:内部Cache容量,为了平衡CPU和内存的速度。分为三级缓存。
    字长:CPU的位和字长。同一时间能一次处理的二进制数的位数叫字长。
    指令系统:CPU依靠指令来计算和控制系统;

  3. 某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入、计算和输出时间均分别为2ms、3ms和4ms,且都按输入、计算和输出的顺序执行,则执行完3个作业需要的时间最少是17ms
    操作系统学习笔记

  4. 为了实现设备独立性, 应用程序必须通过 (逻辑设备名) 来请求使用某类设备。【逻辑设备名也就是端口号】

  5. 显示器的分辨率是出厂就确定的硬件参数,和微处理器cpu型号没关系。

    • 显示器的分辨率为1024*768,表示一屏幕水平方向每行有1024个点,垂直方向每列有768个点
    • 显示卡是显示系统的一部分,显示卡的存储量与显示质量密切相关
    • 像素是显示屏上能独立赋予颜色和亮度的最小单位
  6. 最短CPU执行期优先算法一定是剥夺式的。❌

考察的是短作业优先调度模式。
短作业优先(SJF)有两种调度方式
非抢占式(非剥夺式)调度:一旦进程拥有了CPU,只有当该CPU脉冲时间结束才会让出CPU的控制权。
抢占式(剥夺式)调度:当有比当前进程剩余时间片更短的进程到来时,新来的进程抢占当前进程获得CPU运行。这种方式也被称为最短剩余时间优先调度(SRTF)。

进程、线程

  1. 进程和程序的本质区别是( 前者为动态的,后者为静态的) 。

进程与程序的主要区别:
(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序

  1. 在操作系统中,并发是指若于个事件(在某一事件间隔)发生。
  2. 共享内存可用于进程间数据交换
  3. 分区存储管理支持多道程序设计,算法简单,但存储碎片多。
  4. 分区分配是能满足多道程序设计需要的一种最简单的存储管理技术,如可变式分区法,基本思想是,当用户作业要求进入主存时,在主存可利用的空间区中,找到大于等于用户作业所需要的空间容量,如果该空间大于用户用需要的容量,那么操作系统将会把该分区分成两部份,一部份大小是刚好用户作业所需要的大小,一份则是较小剩下来的,由此可见,这样就会产生很多小的存储碎片。
  5. 通道能够完成(内存与外设)之间数据的传输。
  6. 关于etcd中Raft的说法:
    • 只有特定服务器可以成为一个候选者Candidate
    • 所有节点初始状态都是Follower角色
    • Candidate收到大多数节点的选票则转换为Leader

文件管理系统

文件管理系统管理的对象有文件、目录 和 磁盘(磁带)存储空间。
文件管理系统管理的对象如下:

  1. 文件。在文件系统中有着各种不同类型的文件,它们都作为文件管理的直接对象。
  2. 目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录,在目录的每个目录项中,必须含有文件名、对文件属性的说明,以及该文件所在的物理地址(或指针)。对目录的组织和管理,是方便用户和提高对文件存取速度的关键。
  3. 磁盘(磁带)存储空间。文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能提高对文件的存取速度。
  4. 分段尺寸受内存空间的限制,但作业总的尺寸不受内存空间的限制。
  5. 快速格式化只能用于曾经格式化过的磁盘
  6. 鼠标器与键盘同时工作会使某些操作更简单和方便,鼠标器与 shift 键的配合使用可以移动一个对象。
  7. 多道程序系统的运行必须要依赖(通道中断)硬件机构的支持。

OS的四个特性:并发性、共享性、虚拟性和异步性。
异步性: 在多道程序环境下,允许多个进程并发执行。但由于资源等因素的限制,进程的执行通常并非一气呵成,而是以走走停停的方式运行。内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成,都是不可预知的。故而作业完成的先后次序与进入内存的次序并不完全一致,亦即进程是以异步方式运行的。所以异步性就是OS不确定性的原因,会导致 1. 程序的运行结果不确定 2. 程序的运行次序不确定 3. 程序多次运行的时间不确定。

dos是磁盘操作系统
DOS实际上是Disk Operation System(磁盘操作系统)的简称。顾名思义,这是一个基于磁盘管理的操作系统。与我们现在使用的操作系统最大的区别在于,它是命令行形式的,靠输入命令来进行人机对话,并通过命令的形式把指令传给计算机,让计算机实现操作的。
DOS常用于嵌入式操作系统

网络操作系统: Windows NT Server Unix NetWare

计算进程会占用大量的cpu时间,而i/o大的会占用较少的cpu资源,相当于短作业,所以应该优先权更高。
设置优先级的参照规则:
系统进程>用户进程;
交互进程(前台进程)>非交互进程(后台进程);
I/o进程>计算进程。

一个文件在同一个系统中、不同的存储介质上的拷贝,应采用不同的物理结构。

比如现在的笔记本很多带有ssd(固态硬盘)作为系统盘,你创建一个文件,放在系统盘下和放在非系统盘下。ssd和普通的硬盘不是同一种物理结构。

文件的物理结构不仅与外存的分配方式相关,还与存储介质的特性相关,通常在磁带上只适合使用顺序结构。
采用顺序结构的文件既适合进行顺序访问,也适合进行随机访问。
虽然磁盘是随机访问的设备,但其中的文件也可以使用顺序结构。

文件的存取方式取决于存储设备的类型和文件的物理结构,对磁盘设备,文件的物理结构为顺序文件,可以采用顺序,直接存取,索引存取;
磁盘上文件为链接文件,可以直接存取和索引存取;磁盘上文件为索引文件,可以直接存取和索引存取。
对磁带设备,文件的物理结构只为顺序文件,文件只能采取顺序存取方式。


虚拟存储器的实现方法:
1、分页请求系统
2、分段请求系统
3、两种方式的结合(段页

分区是为用户程序分配内存的策略,不是虚拟存储的实现方法。


计算机是由硬件和软件组成,操作系统是软件部分。

操作系统不是必须的


虚存的可行性基础是计算机中著名的局部性原理。

局部性原理表现在以下两个方面: 时间局部性:如果程序中的某条指令一旦执行,不久之后该指令可能再次执行;如果某数据被访问过,不久之后该数据可能再次被访问。产生时间局部性的典型原因是程序中存在着大量的循环操作。 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式聚簇存储的。


可重定位存储管理能实现紧凑技术的存储管理。
运行效率对多道批处理系统最重要。

单道批处理注重顺序性
多到批处理方式为了提高资源利用率吞吐量,周转时间长,无交互能力
分时系统为了实现人机交互,特点是多路性独立性及时性和交互性
实时系统最明显的特征是实时性可靠性

SPOOLing 系统实现设备管理的虚拟技术,即:将独占设备改造为共享设备。它由专门负责 I/O 的常驻内存进程以及输入、输出井组成。

SPOOLing技术为假脱机技术,就是在硬盘设置输入输出井,并且在内存有常驻的I/O线程,以此来提高效率

虚拟存储虚拟存储器. 实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统一的逻辑视图呈现给用户。
文件系统是对文件存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。
封装实现,抽象接口。
作业管理主要是是CPU利用最大化。

实现多道程序设计技术的前提条件之一是系统具有(中断功能) 。

选项:A. 多个CPU B.多个终端 C.中断功能 D.分时功能
单个终端,单个CPU可以利用分时功能实现多道程序设计,所以AB错误;
没有分时技术,可以利用多个CPU实现多道程序设计,所以D错误;
但是不论使用哪种方法实现多道程序设计,底层都要结合中断功能

优先队列通常用以下( ) 数据结构来实现。

1、什么是优先队列
带有优先数的队列
2、为什么通常用堆实现
堆有堆排序,可以形成最大堆和最小堆,利用堆的性质可以很快的实现优先队列的操作。
栈没有排序,所以很明显不对。
队列也是固定的顺序,FIFO。
所以只有堆可以实现优先队列。