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

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

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示