• 2019-2020-1学期 20192420 《网络空间安全专业导论》第五周读书笔记


    第10章 操作系统

    10.1 操作系统的角色

    • 现代软件(反映了不同的程序设计目的):即应用软件与系统软件两类。
    • 应用软件(application software):帮助我们解决现实世界问题的程序。
    • 系统软件(system software):管理计算机系统并与硬件进行交互的程序。
    • 操作系统(operating system):管理计算机资源并与系统交互提供界面的系统软件。
    • 一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。
    • 任何时候都只有一个操作系统在控制计算机。
    • 双引导或多引导系统:计算机可以具备两个或者更多个操作系统,用户在计算机开机时可以选择使用哪个操作系统。

    10.1.1 内存、进程与CPU管理

    • 多道程序设计(multiprogramming):同时在主存中驻留多个程序,由它们竞争CPU的技术。
    • 内存管理(memory management):了解主存中载有多少个程序以及它们的位置的动作。
    • 进程(process):程序执行过程中的动态表示法。
    • 进程管理(process management):了解活动进程的信息的动作。
    • CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作。
    • 操作系统自身也是必须执行的程序,所以在内存中也要和其他系统软件及应用程序一起管理和维护OS进程。
    • 执行OS的CPU就是执行其他程序的CPU,因此也要把OS进程排入竞争CPU的队列中

    10.1.2 批处理

    • 作业程序和系统指令集合在一起。
    • 一个分批包含一组需要相同或相似资源的作业,这样操作员就不必反复地载入和准备相同的资源。
    • 现代操作系统中的批处理概念允许用户把一组OS命令定义为一个批文件,以控制一个大型程序或一组交互程序的处理。

    10.1.3 分时

    • 分时(timesharing):多个交互用户同时共享CPU时间的系统。
    • 虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。
    • 主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。
    • 哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。
    • 每个用户由主机上运行的一个登录进程表示。
    • CPU时间由所有用户创建的所有进程共享,每个进程将顺次得到一小段CPU时间。

    10.1.4 其他OS要素

    • 小型机成为分时系统的基础硬件平台
    • 微型机第一次采用单个的集成芯片作为CPU,成为真正可以放在书桌上的计算机,从而引发了个人计算机(PC)的想法。
    • 实时系统(real-time system):应用程序的特性决定了响应时间至关重要的系统。
    • 响应时间(response time):收到信号和生成响应之间的延迟时间

    10.2 内存管理

    • 所有程序在执行时都存储在主存中,这些程序引用的数据也都存储在主存中,以便程序能够访问它们。
    • 主存可被看作一个大块的连续空间,这些空间被分为8位、16位或32位的组。
    • 主存中的每个字节或字有一个对应的地址,这个地址只是一个整数,唯一标识了内存中的一个特定部分
    • 因为多道程序设计环境,操作系统必须采用下列技术:
      1.跟踪一个程序驻留在内存的什么位置以及是如何驻留的
      2.把逻辑程序地址转换成实际的内存地址
    • 逻辑地址(logical address):对一个存储值的引用,是相对于引用它的程序的。
    • 物理地址(physical address):主存储设备中的真实地址。
    • 内存是由特定地址引用的连续的位集合
    • 地址联编(address binding):逻辑地址和物理地址间的映射。

    10.2.1 单块内存管理

    • 单块内存管理(single contiguous memory management):把应用程序载入一段连续的内存区域的内存管理方法。
    • 要生成物理地址,只要用逻辑地址加上程序在物理主存中的起始地址即可。
    • 只要知道程序的起始地址,就可以把逻辑地址转换成物理地址。
    • 单块内存管理法的优点:实现和管理都很简单。
    • 单块内存管理法的缺点:大大浪费了内存空间和CPU时间。

    10.2.2 分区内存管理

    • 一旦多个程序在内存中,操作系统的工作就是确保一个程序不会访问另一个程序的内存空间
    • 固定分区法(fixed-partition technique):把内存分成特定数目的分区以载入程序的内存管理方法。
    • 动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存管理方法。
    • 基址寄存器(base register):存法当前分区的起始地址的寄存器。
    • 界限寄存器(bounds register):存法当前分区的长度的寄存器。
    • 三种常用的分区选择法
      1.最先匹配, 即把第一个足够容纳程序的分区分配给它。
      2.
      最佳匹配
      , 即把最小的能够容纳程序的分区分配给它。
      3.最差匹配, 即把最大的能够容纳程序的分区分配给它。

    10.2.3 页式内存管理

    • 页式内存管理法(paged memory technique):把进程划分为大小固定的页,载入内存时存储在帧中的内存管理方法。
    • 帧(frame):大小固定的一部分主存,用于存放进程页。
    • 页(page):大小固定的一部分进程,存储在内存帧中。
    • 页映射表(Page Map Table,PMT):操作系统用于记录页和帧之间的关系的表。
    • 注意:有两种逻辑地址时是无效的,一种是越过了进程的界限,一种是偏移量 大于 帧大小。
    • 请求分页(demand paging):页式内存管理法的扩展,只有当页面被引用(请求)时才会被载入内存。
    • 页面交换(page swap):把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。
    • 虚拟内存(virtual memory):由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
    • 系统颠簸(thrashing):频繁的页面交换造成的低效处理,会严重降低系统的性能。

    10.3 进程管理

    10.3.1 进程状态

    • 进程状态(proccess state):在操作系统的管理下,进程历经的概念性阶段
    • 每个状态发生的不同的事情:
      1.在创建阶段,将创建一个新进程。
      2.在准备就绪状态中,进程没有任何执行障碍。
      3.运行状态下的进程是当前CPU执行的进程。
      4.等待状态下的进程是当前在等待资源(除了CPU以外的资源)的进程。
      5.终止状态下的进程已经完成了它的执行,不再是活动进程。

    10.3.2 进程控制块

    • 进程控制块(process control block):操作系统管理进程信息使用的数据结构
    • 通常,每个状态由一个PCB列表表示,处于该状态的每个进程对应一个PCB。
    • 上下文切换(context switch):当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。

    10.4 CPU调度

    • CPU调度:确定把哪个处于准备就绪状态的进程移入运行状态。
    • 非抢先调度(nonpreemptive scheduling):当当前执行的进程自愿放弃了CPU时发生的CPU调度。
    • 抢先调度(preemptive scheduling):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
    • 周转周期(turnaround time):从进程进入准备就绪状态到它最终完成之间的时间间隔,时评估CPU调度算法的标准。

    10.4.1 先到先服务

    • 该调度方法是非抢先的
    • 一旦进程获得了CPU的访问权,那么除非它强制请求转入等待状态,否则将一直占用CPU。

    10.4.2 最短作业优先

    • 最短作业优先CPU调度算法将查看所有处于准备就绪状态的进程,并分派一个具有最短服务时间的。
    • FCFS一样,它也是非抢先算法。

    10.4.3 轮询法

    • CPU轮询法将把处理时间平均分配给所有准备就绪的进程。
    • 时间片(time slice):在CPU轮询算法中分配给每个进程的时间量。
    • 轮询算法是抢先的
    • 它一般支持所有的作业,被公认为是最公平的算法。

    第11章 文件系统和目录

    11.1 文件系统

    • 磁盘上的数据都存储在文件中,这是在电子媒介上组织的一种机制
    • 文件(file):数据的有名集合,用于组织二级存储设备。
    • 文件系统(file system):操作系统为它管理的文件提供的逻辑视图
    • 目录(directory):文件的有名分组
    • 可以把文件看作位序列、字节序列、行序列或记录序列

    11.1.1 文本文件和二进制文件

    • 文本文件(text file):包含字符的文件。
    • 二进制文件(binary file):包含特定格式的数据的文件,要求给位串一个特定的解释

    11.1.2 文件类型

    • 文件类型(file type):文件(如Java程序或Microsoft文档)中存放的关于类型的信息。
    • 文件扩展名(file extension):文件名中说明文件类型的部分。

    11.1.3 文件操作

    • 在操作系统协助下,可以对文件进行下列操作:
      1.创建文件
      2.删除文件
      3.打开文件
      4.关闭文件
      5.从文件中读取数据
      6.把数据写入文件
      7.重定位文件中的当前文件指针
      8.把数据附加到文件结尾
      9.删减文件(删除它的内容)
      10.重命名文件
      11.复制文件

    11.1.4 文件访问

    • 顺序文件访问(sequential file access):以线性方式访问文件中的数据的方法。
    • 直接文件访问(direct file access):通过指定逻辑记录编号直接访问文件中的数据的方法。

    11.1.5 文件保护

    • 确保合法的文件访问是操作系统的责任

    11.2 目录

    • 大多数操作系统都用文件表示目录。
    • 目录文件存放的是关于目录中的其他文件的数据。

    11.2.1 目录树

    • 目录树(directory tree):展示文件系统的嵌套目录组织的结构。
    • 根目录(root directory):包含其他所有目录的最高层目录。
    • 任何一个目录下的所有文件的名字都必须是唯一的,但不同目录或子目录下的文件则可以是同名的。
    • 工作目录(working directory):当前活动的子目录。

    11.2.2 路径名

    • 路径(path):文件或子目录在文件系统中的位置的文本名称。
    • 绝对路径(absolute path):从根目录开始,包括所有后继子目录的路径。
    • 相对路径(relative)):从当前工作目录开始的路径。

    11.3 磁盘调度

    • 磁盘调度(disk scheduling):决定先满足哪个磁盘I/O请求的操作。

    11.3.1 先到先服务磁盘调度法

    11.3.2 最短寻道时间优先磁盘调度法

    • 这一方法将通过尽可能少的读写头移动满足所有未解决的请求。

    11.3.3 SCAN磁盘调度法

    • 这种方法只是在磁盘调度法中没有上下移动,而是读写头向轴心移动,然后再向盘片边缘移动,就这样在轴心和盘片边缘之间来回移动
    • 这种算法的一些变体能用各种方法提高它的性能。
    • 另一种变体则是最小化到轴心和到盘片边缘的移动极限。
  • 相关阅读:
    手机app打开的web,在打开chrome浏览器
    linux环境下安装yaf
    redis在ubuntu下的安装
    验证一个值是否在多维数组中
    20个正则表达式
    nginx+memcached缓存图片
    cocos2dx加载骨骼动画,获取骨骼位置
    listview的pushBackDefaultItem中的item属性被修改问题
    lua保留n位小数方法
    cocos2dx中node的pause函数(lua)
  • 原文地址:https://www.cnblogs.com/rwl010306/p/11794801.html
Copyright © 2020-2023  润新知