软件设计师教程(第三版)(修订版)三章笔记

2024-01-06 20:08

本文主要是介绍软件设计师教程(第三版)(修订版)三章笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

操作系统作用 《== 通过资源管理提高计算机系统效率,改善人机界面向用户提供友好工作环境
        特征 《== 并发性、共享性、虚拟性、不确定性
        功能 《== 处理机管理(进程管理,时间)、文件管理(信息)、存储管理(空间)、设备管理、作业管理(任务、人机交互、GUI)
        分类 《== 批处理(单道、多道(特点:多道、宏观并行、微观串行))、
                  分时(很短时间片,特点:多路性(同时性)、独立性、交互性、及时性)、
                  实时(实时控制系统(火炮自控、飞机自驾、导弹制导)、实时信息处理系统(飞机订票、信息检索),特点:快速响应时间(中断、事件驱动)、有限交互能力、高可靠性)、
                  网络、分布式、微机、嵌入式

进程是资源分配和独立运行的基本单位 <== 有程序、数据、进程控制块(PCB)组成
进程三(五)态:运行、就绪、阻塞(、新建态、终止态)  p102图3-5
内核原语 《== 进程控制(创建、撤销、挂起、激活、阻塞、唤醒)原语、进程通信原语、资源管理原语、其他原语
进程通信 《== 同步互斥(临界区CS)、信号量(整型信号量、记录型信号量、信号量集)
临界区管理原则:有空即进、无空则等、有限等待(避免饥饿)、让权等待(避免忙等)
整型信号量 《== 公有信号量,实现进程间互斥,初值为1或资源数目
                私有信号量,实现进程间同步,初值为0或某个正整数
PV操作--低级通信原语(申请/释放资源)
S=S-1                                  S=S+1
if S<0 then W(S)  进程插入等待队列     if s<=0 then R(S) 从阻塞队列唤醒进程
利用PV操作实现进程互斥(令mutex=1),利用PV操作实现进程同步(s1=1,s2=0) p105例3.1 3.2 3.3

高级通信方式-- 共享存储模式、消息传递模式、管道通信
管程(monitor) -- notfull.wait 进程将被挂起
                 notfull.signal 启动被挂起进程(如无被挂起进程,则空操作,不改变notfull状态,不同于V操作)
                 解决生产者-消费者问题 p108例3.4
                 put: count>=n->notfull.wait(缓冲区已满)   notempty.queue->notempty.signal(唤醒等待者)
                 get: count<=0->notempty.wait(缓冲区已空)  notfull.queue->notfull.signal(唤醒等待者)

进程调度--可剥夺、不可剥夺
作业提交到完成经历高(占用进程,只需一次)、中(占用内存)、低(占用cpu,最活跃重要)三级调度
调度算法 《== 先来先服务(FCFS)(宏观调度,利于长作业、cpu繁忙作业,不利于短、io繁忙作业)、
              时间片轮转(微观调度,固定/可变时间片)、
              优先调度级(静态/动态)、
              多级反馈调度表(高优先队列>低优先队列,照顾io型进程)
进程优先级确定 p111

死锁 《== 进程推进顺序不当、同类资源分配不当(m<nk时)、PV操作不当
    产生的4个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件
    处理的4种策略:不理睬(鸵鸟策略)、
                   预防(预先静态分配,破坏不可剥夺条件;资源有序分配,破坏环路条件)、
                   避免(Dijkstra银行家算法(安全状态))、 p113例3.8
                   检测与解除死锁(允许产生死锁,检测到,然后资源剥夺或撤销进程)

线程--也具有运行、就绪、阻塞三态,分为用户级线程和内核支持线程
虚拟地址(逻辑、相对、程序地址),物理地址(绝对地址),地址重定位(静态/动态(BR))
存储管理方案 《== 分区存储管理(固定分区、可变分区(刚好等于作业大小,可变分区4种算法:最佳适应、最差适应、首次适应、循环首次适应)、可重定位分区(解决碎片,靠拢地址变化重定位))、
                  分页、分段、段页式、虚拟存储管理

分区保护方式 《== 上界/下界寄存器保护(下界寄存器<=物理地址<=上界寄存器)、基址/限长寄存器保护(基址寄存器<=物理地址<基址寄存器+限长寄存器)

分页存储管理--纯分页(页号P+页内地址W(偏移量),页表(实现从页号到物理块号的地址映射,逻辑地址->物理地址))、
              快表(联想存储器存放当前进程最活跃的少数几个物理块号)、
              两级页表机制(将页表进行分页:页表目录-存放页表物理地址,页表-存放页物理块号)
分段存储管理--(段表存放该段基址(由段号索引)和段长)
段页式存储管理--(段易多进程共享,页对用户透明但不易共享。段号s+段内页号p+页内地址w)
虚拟存储管理--(作业部分装入主存,部分可留在磁盘上,动态加载)
              时间局限性(原因循环),空间局限性(原因顺序执行)
              虚拟存储器实现方式 《== 请求分页系统(核心问题是选择合适的页面置换算法解决抖动thrashing:最佳置换、先进先出FIFO置换(性能最差,内存块增加,缺页次数反而增加)、最近最少未使用LRU置换(需硬件支持,寄存器或栈)、最近未用NUR置换)、请求分段系统、请求段页式系统
工作集--某段时间间隔delta内,进程实际要访问的页面的集合 w(t,delta)  t-工作时间 delta-窗口尺寸window size

IO设备管理软件4层--中断处理程序、设备驱动程序、与设备无关的系统软件、用户级软件
缓冲技术 《== 通道技术(字节多路通道、数组选择通道、数组多路通道)、DMA技术、缓冲技术(单、双、多、环形缓冲)、Spooling技术(一类物理设备模拟另一类物理设备)
输入井作业状态 《== 提交、后备、执行、完成

磁盘调度 《== 先移臂调度、再旋转调度
    调度算法《== 先来先服务FCFS、最短寻道优先SSTF、扫描算法SCAN(电梯调度算法)、单项扫描调度算法CSCAN
    旋转调度算法 《== 同磁道不同编号扇区、不同磁道不同编号扇区(1、2让首先到达读写磁头位置的扇区先进行传送操作)、
                      不同磁道相同编号扇区(3任选一个读写磁头位置的扇区进行传送操作)


文件系统按名存取(不按地址存取),并发访问和控制,安全控制(访问权限),性能优化(存储效率、检索、读写性能),差错恢复(验证文件正确性)
文件类型 《== 按性质和用途分:系统、库、用户文件
              系统保存期限分:临时、档案、永久
              保护方式分:只读、读写、可执行、不保护
              UNIX文件分:普通、目录、设备(特殊)文件
              文件系统:fat、vfat、ntfs、ext2、hpfs
文件逻辑结构 《== 记录式文件(定长/变长,有结构,一个以上记录构成)、流式文件(无结构,一串顺序字符流构成)
    物理结构 《== 连续(顺序)结构、链接(串联)结构、索引结构、多个物理块的索引表(索引表组织方式:链接文件、多重索引方式。UNIX采用三级索引结构,索引表项分4种寻址方式:直接、一级间接、二级间接、三级间接)
文件目录(用于文件检索)--是文件控制块FCB(也叫文件说明或文件目录项)的有序集合
                        FCB包含基本信息类(文件名、物理地址、长度、块数)、存取控制信息类(存取权限(UNIX主、同组、一般用户RWX))、使用信息类(建立/修改/访问日期、进程数、等待队列)
    目录结构 《== 一级(查找慢,不允许重名,不便于文件共享)、二级(主文件目录MFD、用户文件目录UFD,不便于文件共享)、多级(dos,unix)
文件存取方法 《== 顺序存取(记录/流式文件)、随机存取(直接存取法--流式文件、按键存取法--记录文件(不根据记录号或地址,而是根据某个数据项(键)内容来存取记录))
外存空闲空间管理方法 《== 位示图(适合各种物理结构)、空闲区表(适用连续文件结构)、空闲块链(无需磁盘分配表,节省空间)、成组链接法(UNIX中)

 

文件共享--文件名和文件说明分离的目录结构(硬链接(两个文件目录表目指向同一索引结点,不可跨文件系统)、符号链接(映射原文件或目录路径名,可跨文件系统、网络,缺点增加读盘次数查找索引结点))
文件保护(存取控制) <== 存取控制矩阵(用户+全部文件二维表)、存取控制表(UNIX使用)、用户权限表、密码
文件安全管理 《== 系统级(注册与登录,防止未经授权进入)、用户级(分类用户和分配访问权,设置不同存取权限)、目录级、文件级(设置访问权限)
文件系统可靠性 《== 转储(静态/动态/海量/增量)与恢复、日志文件、文件系统一致性

作业控制 《== 脱机(无需人工干预)、联机
作业 《== 由程序、数据、作业说明书(包括基本情况、作业控制、资源描述)组成
作业状态 《== 提交(通过输入设备送入计算系统)、后备(通过spooling系统输入到后备存储器(磁盘))、执行(等待、就绪、运行)、完成
作业调度--作业控制块JCB排成一个或多个队列(作业后备队列)
    调度算法 《== 先来新服务、短作业优先、响应比高优先(响应比高先执行,算法复杂,系统开销大)、优先级调度算法、均衡调度算法
                                          响应比Rp = 作业响应时间/作业执行时间 = 1 + 作业等待时间/作业执行时间

    调度算法性能指标 《== 周转时间Ti = toi - tsi,带权周转时间Wi = Ti / tri  (作业Ji,提交时间tsi,执行时间tri,完成时间toi)

用户界面发展阶段:控制面板式、字符、图形、新一代

网络操作系统 《== 集中模式(分时操作系统+网络功能,UNIX)、客户端/服务器模式、对等模式
嵌入式操作系统特点 《== 微型化、可定制、实时性、可靠性、易移植性(硬件抽象层HAL/板级支撑包BSP)
                         
正则表达式UNIX、编写shell

 

这篇关于软件设计师教程(第三版)(修订版)三章笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/577458

相关文章

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

python库fire使用教程

《python库fire使用教程》本文主要介绍了python库fire使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1.简介2. fire安装3. fire使用示例1.简介目前python命令行解析库用过的有:ar

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min