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

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

相关文章

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.