zoukankan      html  css  js  c++  java
  • Chapter One操作系统概述

    操作系统
    概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织和调度计算机的工作和资源分配,是最基本的系统软件。

    特征∶并发、共享(两个最基本的特征)、虚拟、异步。
    并发∶指同一时间间隔内发生,区别于并行。微观上分时地交替执行。
    功能∶是计算机系统资源(处理机、存储器、文件、设备)的管理者

    用户与计算机硬件系统之间的接口∶
    ①命令接口(允许用户直接使用)(1)联机(交互式)命令接口(适用于分时or实时)(2)脱机(批处理)命令接口
    ②程序接口(=系统调用命令)
    ③GUI(图形接口调用系统命令)
    注∶ 在多道程序环境下,处理机的分配和运行都以进程(或线程)为单位。
    系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用。

    操作系统的发展∶批处理—>分时一>实时—网络和分布式
    ①批处理(缺点∶没有交互能力)
    单道批处理一>顺序性(CPU大量时间在空闲等待I/O)
    多道批处理(失去封闭性)一>制约性、间断性、共享性
    特点∶ 多道、宏观上并行,微观上串行。
    ②分时系统∶ (以时间片为单位)允许多个用户以交互的方式使用计算机
    特点∶同时性、交互性、独立性、及时性
    分时系统能较快、及时接收并处理命令,快速响应用户。
    分时系统中,时间片一定时,用户数越多,响应时间越长。
    ③实时系统∶在某个时间限制内完成某些紧急任务而不需时间片排队
    特点∶ 及时性、可靠性
    ④网络(网络资源共享)和分布式∶ 区别是在分布式中,若干计算机相互协同完成同一任务

    Chapter Two进程管理
    进程概念∶
    进程(动态)是资源分配的一个独立单位。程序∶ 静态
    进程的特征∶ 动态性(最基本)、并发性(重要特征)、独立性、异步性
    进程实体由程序段、数据段、PCB三部分组成
    注∶程序段(多个进程可运行同一程序)、 PCB是进程存在的唯一标志。
    PCB描述进程的基本情况和活动过程,可以控制和管理进程。
    主要包括∶进程描述信息(ID)、进程控制(优先级)和管理信息、资源分配和处理机相关。
    二进制代码和常量放在正文段;动态分配的存储区在数据堆段;临时用的变量在数据栈段。
    进程的三种基本状态∶就绪、阻塞、运行

    注∶ 在可剥夺OS中,当有更高优先级的进程就绪时,调度程序将正在执行的进程一>就绪态,让更高优先级的执行。
    就绪态∶ 进程已处于准备运行的状态(只缺CPU了!)

    阻塞(等待资源)∶请求资源失败、等待某操作的完成、数据未到达、无事可做
    唤醒(资源到达)∶I/O操作已完成or数据已到,调用唤醒原语

    引起创建进程的操作∶终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求
    注∶ 用户进程被创建后,随着运行的正常或不正常结束而撤销。(进程是有一定生命周期的!)
    进程的终止∶ ①异常结束∶存储区越界、保护错、非法指令、特权指令错、I/O故障②正常结束∶ 任务已完成 ③外界干预(人为、OS干预、父进程的请求or终止)

    进程控制
    对系统中所有的进程实施有效的管理。
    原语
    处于最底层;不可分割的指令序列;运行时间短,调用频繁
    操作是一种低级的进程通信语言,由两个不可中断的过程组成,并非系统调用。

    系统调用(运行在核心态)
    用户程序凡是与资源有关的操作(存储分配、I/O、管理文件)都必须通过系统调用。
    用户程序(用户自编or系统外层应用程序)工作在用户态;内核程序工作在核心态。

    进程的通信
    一个进程不能直接访问另一个进程的地址空间
    ①共享存储(互斥访问)∶
    低级方式∶ 基于数据结构的共享;
    高级方式∶ 基于存储区
    ②消息传递∶
    直接通信方式∶ 接收进程从消息队列中取得消息;
    间接通信方式∶将消息挂到某个中间实体(邮箱)
    ③管道通信∶利用一种特殊的pipe文件连接两个进程。
    管道只能采用半双工通信,某一时间段内只能实现单向传输。如果要实现双向同时通信,则需设置两个管道。

    线程
    线程的引入∶ 减小程序的时空开销,提高程序并发执行的程度,提高系统效率线程是程序执行的最小单元,并不拥有任何系统资源(进程才有),是独立调度的基本单位。
    同一进程中,线程的切换不会引起进程的切换;切换到另一进程中的线程才会切换。
    同一进程或者不同进程内的线程都可以并发执行。
    用户级线程∶ 所有工作都由应用程序完成,无需内核干涉。
    内核支持线程:

    多线程模型∶多对一模型∶缺点一>一个线程阻塞会导致整个进程都被阻塞
    注∶ 线程包含CPU现场,可以独立执行程序。只有内核级线程才是处理机分配的单位!

    CPU调度
    ①作业调度(高级DD)∶内存与辅存(外存)之间的DD;对于每个进程只调入调出一次。调入建立PCB,调出才撤销PCB。
    ②内存DD(中级DD)∶将暂时不运行的进程调至外存等待。引入中级DD为了提高内存利用率和吞吐量(调到外存等待的进程状态为挂起态)
    ③进程DD(低级DD)∶内存->CPU,是OS中最基本的一种DD;一般OS中必须配置,使用频率很高。
    公式:周转时间、平均周转时间、等待时间、平均等待时间、系统吞吐量
    周转时间=等待时间+服务时间(执行时间)
    周转时间=完成时间 (时刻) - 提交时间(时刻)

    调度算法∶
    FCFS、SJF、优先级DD、高响应比优先、时间片轮转、多级反馈队列DD。
    FCFS∶属于不可剥夺算法!
    特点∶算法简单;有利于CPU繁忙型作业,不利于I/O繁忙型作业。
    SJF∶ 会产生饥饿现象,是调度策略问题。(默认"非抢占",也有抢占式)
    特点∶ 平均等待时间、平均周转时间最少!
    优先级DD∶
    ①静态优先级∶优先级在创建进程时确定,整个运行期间不变
    ②动态优先级∶ 随着进程执行时间增加,其优先权下降。
    高响应比优先∶ Rp=(waitT+ServeT)/ServeT
    时间片轮转∶ 主要适用于分时系统;绝对可抢占;时间片过大时,相当于 FCFS

    进程同步
    临界资源(独占资源)∶一次仅允许一个进程访问使用的资源
    (如∶打印机、共享变量、共享缓冲区、公用队列)
    共享资源∶ 一次可供多个进程使用 (如∶磁盘存储介质)
    临界区∶ 进程中访问临界资源的那段代码
    同步机制遵循的原则∶ ①空闲让进②忙则等待③有限等待④让权等待
    ④∶ 当进程不能进入临界区时,应释放处理器

    死锁
    定义∶ 多个进程因竞争资源而造成的互相等待
    原因∶①竞争系统资源(不可剥夺资源);独占资源分配不当
    ②进程推进顺序非法;
    死锁的必要条件∶互斥;不剥夺;请求和保持;循环等待(任一条件不满足时则不发生死锁)
    不剥夺∶未使用完之前不能被其他进程强行夺走,只能是主动释放!
    请求和保持∶ 保持资源时又请求被其他进程占有的资源,对已获得的资源保持不放。
    死锁的处理策略∶
    ①死锁预防(通过设立限制条件,破坏四个必要条件,但互斥无法破坏,超级少见!) SPOOLing技术∶ 把互斥资源改造为允许共享使用
    包括∶采用静态分配法,一次申请完全部资源;采用顺序资源分配法,按编号…
    ②死锁避免∶在资源动态分配过程中,用一些算法防止系统进入不安全状态。包括∶ 银行家算法(Max、Allocation、Need、Available)
    ③死锁检测∶ 资源分配图(当不可完全化简时为死锁状态);死锁定理
    ④死锁解除∶ ①资源剥夺法(被动)②撤销进程 ③进程回退法(主动释放)
    注∶出现环路不一定都会导致死锁。
    饥饿不一定是死锁,但是至少一个进程被无限期推迟。

    Chapter Three 内存管理
    程序执行过程∶编译、链接、装入
    链接(链接时形成逻辑地址)
    ①静态链接∶将各目标模块及库函数连城一个完整可执行程序,以后不再拆开
    ②装入时动态链接∶边装入,边链接(早期多道批处理)
    ③运行时动态链接∶需要用到时才链接(现代操作系统)
    装入(将逻辑地址转换为物理地址)
    ①绝对装入∶编译时产生绝对地址。程序中逻辑地址与实际内存地址完全相同;只适用于单道程序环境
    ②可重定位装入(静态重定位)∶地址变换通常在装入时一次完成
    特点∶ 一个作业进入内存,必须分配其要求的全部内存空间。在运行期间就不能再移动位置。没有足够内存时,不能装入作业!
    装入时把逻辑地址变换为物理地址,装入后不能改变。
    ③动态运行时装入(动态重定位)∶不立即转换地址,真正要执行时才进行(需要重定位寄存器支持)
    特点∶动态重定位在作业执行过程中进行。
    程序运行前只装入部分代码即可运行。
    运行期间动态申请分配内存,便于程序段的共享。
    地址重定位(地址映射)
    逻辑地址(又称相对/虚地址)一>物理地址(内存、绝对、实地址)
    注∶ 物理地址可以直接寻址;不能直接用逻辑地址在内存中读取信息!不同进程可以有相同的逻辑地址,但是会映射倒不同的主存位置上。

    交换∶把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到外存(对应进程的中级调度),把内存空间腾出来。

    连续分配——一个用户程序分配一个连续的内存空间
    ①单一连续分配∶ 内存中只有一道程序;实现简单;
    缺点∶只适用于单用户、单任务的OS中;存储器利用率低
    ②固定分区分配∶ 最简单的一种多道程序存储管理方式,分区大小固定(可相等,也可不等),分区的大小由系统决定,有内部碎片。
    ③动态分区分配∶在装入时,根据进程的大小动态建立。产生外部碎片。
    注∶
    内部碎片∶分区大小固定,程序小于固定分区时也占用一个分区,内部浪费
    外部碎片∶ 在所有分区外的存储空间会变成越来越多的碎片(可以用拼接、紧凑技术解决,需要动态重定位寄存器支持)

    分配算法∶
    ①首次适应∶ 空闲分区以地址递增的次序链接,找大小满足要求的第一个分区
    ②最佳适应∶XX按容量递增XX
    ③最坏适应∶XX按容量递减XX
    ④循环首次适应算法:分配内存时,从上次查找结束的位置开始继续查找。
    注∶首次适应(First fit)是最简单,最好,最快的。最佳适应(Best fit)性能通常很差,产生最多外部碎片。

    非连续分配 (离散)—一个程序分散地装入不相邻的内存分区
    分页存储∶ 有内部碎片;地址变换由硬件自动完成
    基地址变换机构 ①有快表(高速缓冲寄存器)TLB②无快表
    页表∶逻辑地址转换成物理地址,由页表项组成。
    页表项∶页号P+物理内存中的块号
    逻辑地址∶ 页号P+页内偏移
    页表长度∶指的是这个页表中总共有几个页表项,即总共几个页;
    页表项长度∶每个页表项占多大的存储空间;
    页面大小∶ 一个页面占多大存储空间。
    物理地址=物理内存中的块号+页内偏移
    注∶ OS对内存采用页式存储管理时,所划分的页面大小必须相同。
    页表全部放在内存中,则存取一个数据或一条指令至少要两次访问内存。

    分段存储:

    虚拟内存管理—>/逻辑上扩充内存
    基于局部性原理(时间局部性、空间局部性)。(不必装入全部程序,基于非连续分配技术)
    装入时,只需装一部分,其余留在外存就可以启动;执行时,当访问的信息不在内存,则用 OS将其调入内存,将暂时不用的换出至外存(内<一>外)
    虚拟存储器三大特征 ∶ 多次性、对换性、虚拟性

    请求分页管理方式∶虚拟存储器的实现,目前最常用
    组成∶ ①页表机制 ②地址变换机构
    ③缺页中断机构∶页面不在内存时,产生一个缺页中断(属于内中断),请求OS将所缺页调入(一条指令在执行期间可产生多次缺页中断)
    注∶ 页式虚拟存储管理的主要特点∶不要求将作业同时全部装入到主存的连续区域

    抖动∶
    刚换出的页面马上又要换入内存,刚换入的页面马上又要换出内存
    频繁换入、换出使系统效率低下
    原因∶淘汰算法不合理、物理页面太少
    解决方案∶增加内存容量;撤销部分进程;换淘汰算法;减少多道程序的度数
    注∶FIFO最易发生抖动,但所有页面调度策略都不可能完全避免抖动。

    Chapter Four I/O管理
    I/0设备分类∶
    (按)传输速率∶低速(键盘鼠标)、中(打印机)、高(磁盘光盘)
    (按)信息交换单位∶ 块设备、字符设备
    块设备∶以数据块为单位存取(磁盘);传输速率高
    字符设备∶ 以字符为单位传输(交互式终端机、打印机);传输速率低;在I/O时常采用中断驱动方式

    I/O控制方式∶
    ①程序直接控制方式
    ②中断驱动方式
    ③DMA方式
    ④通道控制方式∶
    工作过程∶向通道发一条I/O指令,给出通道程序的首地址和要访问的I/O设备,通道接到指令后,执行通道程序便可完成CPU指定的任务,数据传送结束向CPU发中断请求。 I/O通道∶专门负责I/O的处理机,实现CPU、通道、I/O三者并行工作
    注∶ 通道用于实现内存与外设之间的信息传输。通道是一种特殊的处理器,属于硬件技术。

    I/O层次结构(从上到下) ∶
    ①用户层
    ②与设备无关的软件层(设备独立性软件):
    ③设备驱动程序(与硬件直接相关)∶ 负责执行OS发出的I/O命令,因设备的不同而不同
    ④中断处理程序
    ⑤硬件
    注∶ 设备独立性∶用户编程时使用的设备与实际使用的设备无关
    在应用程序中,使用逻辑设备名来请求使用某类设备;而在系统实际执行时,必须将逻辑设备名映射成物理设备名使用

    系统中每一台设备按某种原则统一进行编号
    设备控制器要提供∶ 控制寄存器、状态寄存器和控制命令
    设备控制器中用于实现对设备控制功能的是∶ I/O控制逻辑

    设备分配时应考虑的因素∶
    ①设备的固有属性 (独占设备、共享设备、虚拟设备)
    共享设备∶ 可随机访问。分配共享设备不会引起死锁(独占设备才可能)。
    虚拟设备∶把一个物理设备变换成多个对应的逻辑设备
    ②设备分配算法
    ③设备分配中的安全性∶ 应防止发生进程死锁。
    安全分配方式∶设备分配安全,但CPU和设备并行工作
    不安全分配方式∶ 进程可同时操作多个设备,推进迅速; 但有可能产生死锁
    逻辑设备表的设置∶
    ①整个系统只设置一张LUT∶ 不允许有相同逻辑设备名;主要适用于单用户系统
    ②为每个用户设置一张LUT
    一个通道可控制多个设备控制器,每个控制器可以控制多个设备。一个设备分配成功,必须这三个都可用

    SPOOLing技术(假脱机技术)—>用软件控制实质上是用户层软件
    脱机技术∶为了缓和CPU的高速性与I/O设备低速之间的矛盾
    SPOOLing系统的主要特点∶提高I/O速度;将独占设备改造为"共享"设备;实现了虚拟设备功能
    SPOOLing系统的组成:
    (1) 输入井和输出井。
    (2) 输入缓冲区和输出缓冲区。
    (3) 输入进程和输出进程。
    (4) 井管理程序。

    引入缓冲区的主要目的∶
    ①缓和CPU与I/O间速度不匹配的矛盾(如果I/O所花时间比CPU处理时间短得多,则没必要设置缓冲区)
    ②减少对CPU的中断频率
    ③解决基本数据单元大小不匹配的问题
    ④提高CPU和I/O设备之间的并行性
    缓冲区特点∶在缓冲区非空时,不能冲入数据,只能传出;当缓冲区为空时,可以冲入数据,但是要缓冲区充满后,才能传出。
    单缓冲∶设备和处理机之间设置一个缓冲区。处理每块数据用时∶ Max(C,T)+M
    双缓冲∶Max(C+M, T)
    缓冲池∶ 由多个系统公用的缓冲区组成。
    四种工作缓冲区∶收容输入、提取输入、收容输出、提取输出
    三种缓冲队列:空闲、输入、输出

    Chapter Five 文件管理
    从系统角度看,文件系统负责对文件的存储空间进行组织、分配,负责文件的存储并对存入文件进行保护、检索。

    文件的逻辑结构∶是从用户观点出发看到的文件组织形式
    文件逻辑上都可以看作连续的,但在物理设备上并不完全连续。文件的物理结构从实现出发。
    无结构文件(流式文件)∶ txt
    有结构文件(记录式文件)∶①顺序文件∶批量操作效率高;对单个(增删改查)较困难②索引文件∶成百上千倍提高访问速度 ③索引顺序文件
    注∶ 索引表本身是定长记录的顺序文件

    文件控制块(FCB)∶存放控制文件所需的各种信息的数据结构,实现"按名存取"。一个 FCB就是一个文件目录项,即本身就也被看成一个文件

    目录结构—>目录管理要实现"按名存取";
    ①单级目录结构∶
    在整个文件系统中只建立一张目录表,每个文件占一个目录项
    特点∶ 不便于文件共享;按名存取; 文件不允许重名
    ②两级目录结构∶ 将文件目录分成∶ 主文件目录和用户文件目录
    特点∶解决文件重名问题;
    ③多级目录结构(树型)∶ 方便分类,结构清晰;但增加了磁盘访问次数,影响查询速度;不便于实现文件的共享
    绝对路径∶ 从根目录出发的路径。
    相对路径∶进程对各文件的访问都是相对于当前目录进行的。当用户要访问某个文件时,使用相对路径标识文件。

    文件的物理结构:文件如何存放在外存磁盘上。
    文件的分配方式∶
    ①连续分配∶ 要求每个文件在磁盘上占有一组连续的块
    特点∶ 支持顺序访问和直接访问;实现简单,存取速度快;文件长度不宜动态增加
    ②链接分配∶采用离散分配的方式
    显式∶ 把用于链接文件各物理块的指针从块末尾提出,显式地放入内存的一张链表(文件分配表FAT一>该表在整个磁盘仅设—张)中。
    ③索引分配∶索引块应尽可能小(索引表->一个文件分配一张,要占一定空间)

    文件的存储空间管理∶实际上是对空闲块的组织和管理
    ①空闲表法 ②空闲链表法③位示图法(要推算出盘块号与字号/位号相互转换) ④成组链接法
    磁盘
    扇区∶是磁盘可寻址的最小存储单位
    一次磁盘读写操作时间由寻道时间、延迟时间和传输时间决定。
    但实际上存取时间与磁盘调度算法密切相关。调度算法直接决定了寻道时间。 DD算法∶ ①FCFS ②SSTF∶ 会产生"饥饿"③SCAN(电梯算法)④循环扫描
    注∶磁盘是共享设备,但在每一时刻,至多只能由一个作业启动它。

  • 相关阅读:
    Server Tomcat v8.5 Server at localhost failed to start.
    使用bootstrap中的bootstrapValidator,验证ckeditor富文本框不为空
    百度WebUploader上传图片,图片回显编辑,查看
    百度WebUploader上传图片
    做webapp静态页面的一些积累
    ztree插件的使用
    highcharts曲线图
    ajax的表单提交,与传送数据
    一条数据中需要遍历多条数据,页面遍历方法
    在页面中使用拼接字符串的方式显示动态加载的数据
  • 原文地址:https://www.cnblogs.com/dsbz/p/14434055.html
Copyright © 2011-2022 走看看