《计算机操作系统 第3版》笔记

计算机操作系统 第三版 笔记

版本:3th

文章目录

简介

第一章介绍了OS的发展、特征、功能以及OS结构

第二,三章阐述了进程和线程的基本概念、同步与通信、调度与死锁

第四章介绍了连续和离散存储器管理方式、虚拟存储器

第五章 设备管理,对IO软件的层次结构进行深入阐述

第六,七章是文件管理和用户接口

第八章介绍了计算机网络、网络体系结构、网络提供的功能和服务以及Internet

第九章 安全和病毒

第十章 一个典型的OS实例——UNIX系统内核结构

一)OS介绍

计算机系统 = 硬件 + 软件

1.1 目标和作用

目标:

  1. 有效性:系统资源利用率,系统吞吐量
  2. 方便性
  3. 可扩充性
  4. 开放性:遵循标准

作用:

  1. 是用户与计算机硬件系统之间的接口
  2. 是计算机系统资源的管理者
  3. 对计算机资源的抽象

1.2 发展过程

  1. 无操作系统的计算机系统
    1. 人工操作
    2. 脱机输入/输出:解决CPU和I/O设备之间的速度差异
  2. 单道批处理系统:磁带的批作业,内存的一道程序
  3. 多道批处理系统
  4. 分时系统
  5. 实时系统

1.3 基本特性

并发、共享、虚拟、异步

  1. 并发性

    并发,并行
    程序,进程
    线程
    
  2. 共享性:资源,内存中的并发执行的进程/线程,共同使用

  3. 虚拟技术:时分复用技术,空分复用技术

  4. 异步性:资源,进程间独占或共享,最终,进程以不可预知的速度向前推进

1.4 主要功能

  1. 处理机管理:以进程为基本单位,即进程管理;线程,线程管理

    1. 进程控制:新建,撤销,状态迁移

    2. 进程同步:2种协调方式

      进程互斥方式:锁...
      进程同步方式:信号量...
      
    3. 进程通信:消息队列…

    4. 调度:作业经过调度→执行

      第一步,作业调度:作业进入内存,建立进程(就绪)
      第二步,进程调度:进程获取CPU时间片,使进程运行
      
  2. 存储器管理:内存

    1. 内存分配:作业进入内存,分配内存;作业运行过程中申请内存

    2. 内存保护:用户程序的内存空间间隔离

      每个用户程序,两个界限寄存器:上界,下界
      
    3. 地址映射:地址空间的逻辑地址,内存空间的物理地址

    4. 内存扩充:逻辑上的内存扩充

      请求调度功能:装入一部分用户程序和数据,即可启动该程序运行
      置换功能:暂时无用的程序数据调至磁盘,腾出的内存空间供有需求的“进程”使用
      
  3. 设备管理

    完成进程的IO请求、给进程分配IO设备、提高CPU和IO的利用率、提高IO速度、简单性

    1. 缓冲管理:IO设备,缓冲区(内存),CPU
    2. 设备分配
    3. 设备处理:CPU和IO之间的通信
    4. 虚拟设备
  4. 文件管理

    管理系统文件和用户文件,方便用户使用;保证文件安全

    1. 文件存储空间管理:外存
    2. 目录管理:目录项
    3. 文件的读写管理和保护
  5. 用户接口

    1. 用户接口
    2. 程序接口
  6. 网络

1.5 结构设计

二)进程管理

2.1 基本概念

顺序与并发
  • 程序的顺序执行
  • 多个程序并发执行
  • 多个程序并行执行:多核CPU
进程
  • 定义

  • 特性

  • 基本状态:就绪,执行,阻塞,挂起

    就绪:已分配除CPU的所有必要资源,获取CPU就可执行
    执行
    阻塞:执行→阻塞(请求IO、申请缓冲空间等)
    挂起:定义&&引起原因
    
进程控制块PCB
  • 作用

  • 存储信息

  • PCB间的结构/组织方式:链接、索引

2.2 进程状态转换

2.3 进程控制

介绍

进程控制一般由OS的内核的原语实现

原语:若干条指令,用于完成一定功能的一个过程
	原子操作
	管态下执行,常驻内存

进程创建|终止|阻塞与唤醒|挂起与激活

  • 引起事件
  • 发生过程

2.4 进程同步

进程间并发,由于进程的异步性,系统结果如何控制?

进程同步:对多个进程在执行次序上进行协调

  • 基本概念

    • 定义

    • 制约关系:

      • 间接相互制约关系:资源
      • 直接相互制约关系:进程间合作(如输入进程,缓冲,计算进程)
    • 临界资源:定义,解决(互斥)

      • 生产者-消费者
    • 临界区

    • 同步机制遵循规则

      空闲让进:无进程处于临界区时,表明临界资源处于空闲状态,其他试图进入临界区的进程,可进入一个
      忙则等待:已有进程进入临界区,表明临界资源正在被访问,其他试图进入临界区的进程,必须等待
      有限等待:要访问临界资源的进程,应在有限时间内进入自己的临界区
      让权等待:进程不能进入自己的临界区,应立即释放CPU
      
信号量机制

原子操作:wait,signal

  • P
  • V
整型信号量:不采取“让权等待”,进程wait S<=0时不断进行检测
记录型信号量:若采取“让权等地”,出现多个进程等待访问同一临界资源
	等待进程链表
AND型信号量:当进程间共享多个资源,如A,B进程同时持有资源,仍需资源,但可用资源无
	上述:死锁
	AND:一次性全部分配给进程
信号量集

应用:进程互斥,前趋关系

管程机制

Monitors

条件变量

2.5 进程通信

通信类型

  1. 共享存储器系统
    1. 共享数据结构
    2. 共享存储区
  2. 消息传递系统
    1. 直接通信:无中间介质
    2. 间接通信:信箱
  3. 管道通信:pipe文件
  4. 消息缓冲队列通信机制

2.6 线程

  • 基本概念

  • 状态迁移图

  • 线程与进程

  • 线程属性

  • 同步:互斥锁,条件变量,计数信号量,多读 单写锁…

  • 通信

  • 实现方式

    用户级线程:
    内核级线程:
    # 比较
    用户&内核混合线程
    

第一天终止线:OS介绍,进程管理

三)处理机调度与死锁

一个作业从提交到运行,经历过程包括:(说明,可能存在中程调度,提高内存利用率和系统吞吐量)

  1. 作业调度/高级调度/长程调度:进入内存

    外存上处于后备队列中的作业调入内存
    
  2. 进程调度/低级调度/短程调度:获取处理机

    决定就绪队列中的哪个进程,获取处理机
    

3.1 低级/进程调度

功能
  • 保存处理机现场信息
  • 按某种算法选取进程
  • 把处理器分配给进程
基本机制
  • 排队器
  • 分派器
  • 上下文切换机制
进程调度/算法方式
  • 非抢占方式
  • 抢占方式

3.2 调度队列模型和调度准则

调度队列模型
  • 进程调度:FIFO
  • 进程和作业调度:优先权队列/无序链表,多个阻塞队列
  • 三级调度:内存就绪和外存就绪,内存阻塞和外存外存阻塞
调度准则
  1. 面向用户:周转时间,响应时间,截止时间,优先权
  2. 面向系统:系统吞吐量,处理机利用率,各类资源的平衡利用

3.3 调度算法

  1. 先来先服务:FCFS
  2. 短作业/进程优先调度:SJF,SPF
  3. 高优先权优先调度算法
    • 调度算法类型:非抢占式,抢占式
    • 优先权类型:静态优先权,动态优先权
    • 高响应比优先调度算法
  4. 基于时间片的轮转调度算法
    1. 时间片轮转法
    2. 多级反馈队列调度算法

3.4 实时调度

实现实时调度的基本条件
  1. 提供必要信息:就绪时间,开始截止时间和完成截止时间,处理时间,资源要求,优先级
  2. 系统处理能力强
  3. 采用抢占式调度机制
  4. 具有快速切换机制
实时调度算法的分类

实时任务性质,调度方式,调度程序调度时间,是否多处理机…

  1. 非抢占式调度算法:轮转,优先调度算法
  2. 抢占式调度算法:基于时钟中断的抢占式优先权调度算法,立即抢占的优先权调度算法

3.5 死锁

并发执行虽提高了资源利用率,系统吞吐量,但可能产生——死锁,指:多个进程在运行过程中因竞争资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法再向前推进

产生原因
  1. 资源竞争
  2. 进程间推进顺序非法
必要条件
  1. 互斥条件:一段时间内,资源只能由一个进程占用,若其他进程请求,则只能等待,直到占用资源的进程释放
  2. 请求和保持条件:进程占用至少一个资源,仍提出新的资源请求,但该资源又被其他进程占用,陷入持有资源且请求资源的状态
  3. 不可剥夺条件:资源,未被进程使用完之前,不能被剥夺
  4. 环路等待条件:进程——资源的环形链
处理方法
预防死锁

破坏2、3、4th必要条件(互斥不能破坏)

避免死锁

系统安全状态:按某种进程顺序分配资源,该顺序为安全序列
算法:银行家算法

检测死锁

前提:

  1. 保存有关资源的请求和分配信息
  2. 提供一种算法,利用这些信息检测系统是否进入死锁
解除死锁

方法一:剥夺资源

方法二:撤销进程

四)存储器管理

存储器结构

多级存储器,速度&&容量

CPU:寄存器
主存:高速缓存,主存,磁盘缓存
辅存:磁盘,可移动存储介质

程序的装入

程序的链接

程序的内存分配

介绍,四种分配方式及优缺点

  1. 单一连续分配

  2. 固定分区分配

  3. 动态分区分配

    分区分配算法:
    	首次适应算法
    	循环首次适应算法
    	最佳适应算法
    	最坏适应算法
    	快速适应算法
    操作:分配内存,回收内存
    

固定分区和动态分区的折中方案:伙伴系统

  1. 动态重定位分区分配

    原理
    重定位寄存器
    算法
    

优化:

  1. 对换:内存不够,将暂时使用不到的进程或程序And数据,调入外存

内存分配的管理

基本概念
连续分配,碎片,分区
离散分配方式,基本单位:页、短

对换功能/虚拟存储器,不具备称为基本分页|分段存储管理
基本分页存储管理
基本分段存储管理
段页式存储管理
虚拟存储器的引入
  1. 请求分页存储管理:支持虚拟存储器

    硬件支持:页表机制,缺页中断,地址变换
    
    内存分配策略:最小物理块数,物理块的分配策略,物理块的分配算法
    
    调页策略:预调页,请求调页策略
    页面置换算法:最佳置换算法,先进先出置换算法,最近最久未使用置换算法,
    	LRU近似算法——Clock置换算法
    	其他置换算法
    
  2. 请求分段存储管理

    硬件支持:段表机制,缺段中断,地址变换
    
    ...
    

五)设备管理

IO系统

  1. IO设备分类

  2. IO与CPU通信原理:借助设备控制器

    CPU与IO设备之间的设备控制器,当外设较多时 CPU压力会较大
    缓解CPU压力:在CPU和设备控制器之间,增设了通道
    
  3. 设备控制器

  4. 通道

总线系统

IO控制方式

  1. 程序IO
  2. 中断驱动IO
  3. 直接存储器访问IO:DMA IO
  4. IO通道

缓冲管理

IO软件

设备分配

磁盘存储器的管理

  • 介绍

  • 性能概述

  • 磁盘寻找数据流程

  • 磁盘类型

  • 磁盘调度/算法

    先来先服务
    最短寻道时间优先,SSTF(Shortest Seek Time First)
    扫描算法
    循环扫描算法
    ..
    
  • 磁盘高速缓存

  • 廉价磁盘冗余阵列,RAID

六)文件管理

6.1 介绍

文件
文件系统
数据:数据项,记录,文件
  • 文件类型
  • 文件系统模型
  • 文件操作
  • 文件的逻辑结构
  • 文件的物理结构

6.2 外存/磁盘分配方式

  1. 连续分配
  2. 链接分配
  3. 索引分配

6.3 目录管理

6.4 文件存储空间的管理

6.5 文件共享

6.6 文件保护

6.7 数据一致性控制

  1. 事务
  2. 检查点:定期对事务的Log进行处理
  3. 并发控制

七)操作系统接口

  1. 联机命令接口:字符显示式用户界面,图形化用户界面

    命令语言:命令行,批命令
    命令类型:系统访问类,磁盘操作类,文件操作类,目录操作类,通信类,其他
    
    键盘终端处理程序
    命令解释程序
    

Shell

  1. 进入与退出系统

  2. 文件操作

    cat
    cp
    mv
    rm
    file
    
  3. 目录操作

    mkdir
    rmdir
    cd
    chmod
    
  4. 系统询问

    date
    who
    pwd
    
  5. 重定向和管道

    UNIX系统,系统定义的三个文件:标准输入,标准输出,标准错误
    	改变输入、输出设备的手段:重定向
    
    重定向符:<  >  >>
    
    管道:|
    	前一个命令的输出,作为后一条命令的输入
    
  6. 通信

    write, mail, mesg
    
  7. 后台命令:&,/dev/null

    ps
    wait
    kill
    

系统状态和指令集

系统状态
  • 系统态,管态,核心态
  • 用户态,目态
指令集
  • 特权指令:系统态时,运行的指令
  • 非特权指令:用户态时,运行的指令

系统调用

系统调用,使应用程序可通过系统调用的方法,间接地调用OS的相关服务

  • 实现原理:终端

  • 类型

  • 实现

UNIX系统调用

  • 进程控制
  • 文件操纵
  • 进程间通信
  • 信息维护

八)网络操作系统

网络操作系统NOS,是为了管理网络中的共享资源,实现用户通信和向用户提供多种有效的服务

九)系统安全性

计算机系统中存储和传输数据的保密性、完整性、系统可用性

9.1 基本概念

系统安全性
  • 数据机密性
  • 数据完整性
  • 系统可用性
系统安全的威胁类型
  • 假冒用户身份
  • 数据截取
  • 拒绝服务
  • 修改信息
  • 伪造信息
  • 否认操作/抵赖
  • 中断传输
  • 通信量分析

信息技术安全评价公共准则

CC

9.2 数据加密技术

介绍
数据加密模型
  • 明文,P
  • 密文,Y
  • 加密/解密算法,E/D
  • 密钥,K
加密算法类型
  • 按对称性分类:对称加密算法,非对称加密算法
  • 按所变换明文的单位分类:序列加密算法,分组加密算法
基本加密方法
  • 易位法
  • 置换法
对称加密算法:DES,数据加密标准
非对称加密算法:公开密钥法,如RSA
数字签名和数字证明书

数字签名:利用公开密钥法,实现数字签名,代替传统签名

数字证明书:认证机构CA,为公开密钥发送一份公开密钥证明书,即数字证明书,用于证明通信请求者的身份

网络加密技术
  • 链路加密
  • 端-端加密

9.3 认证技术

基于口令的身份认证
基于物理标志的认证技术
基于生物标志的认证技术
基于公开密钥的认证技术

9.4 访问控制技术

主要名词:

访问矩阵
保护域,访问权
拷贝权,所有权,控制权

访问控制表,访问权限表

总结

主要是过了下《计算机操作员系统 第三版》一书,对OS进行一个简单回忆。
时间:2020.03.06 17:01

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《STM32自学笔记第3》是一本关于STM32微控制器的自学教程。该书深入介绍了STM32微控制器的原理、应用和编程方法。 本书第3增加了最新的STM32系列微控制器的内容,包括了更多实际应用的案例和项目。读者通过该书可以学习到如何使用STM32微控制器进行各种应用开发,如控制系统、嵌入式系统、通讯系统等。 本书首先对STM32微控制器的硬件结构进行了详细的介绍,包括了芯片的内部结构、引脚的功能和特性。然后,通过具体的实验项目,教授了STM32的基本编程方法和技巧。读者可以通过这些实验,了解STM32的各种功能模块的使用方法,如ADC、USART、SPI等。同时,还介绍了如何使用STM32CubeMX和Keil MDK等常用的开发工具进行项目开发。 此外,本书还对STM32的外设扩展进行了介绍,如通过I2C总线连接外部设备,通过CAN总线实现通讯等。读者可以学习到如何通过外设扩展,实现更复杂的应用系统。 总的来说,《STM32自学笔记第3》是一本系统、全面的STM32自学教程。通过学习该书,读者可以深入了解STM32微控制器,并掌握其在各种应用领域的开发方法。无论是初学者还是有一定STM32开发经验的人都可以从中获益。 ### 回答2: 《STM32自学笔记 第3》是一本适合自学STM32开发板的参考书籍。本书以STM32微控制器为基础,详细介绍了STM32的硬件结构和软件开发环境。作者结合自身经验和实际案例,将复杂的知识点以简洁明了的方式呈现,使读者能够快速入门。 第3的内容相比前两有所扩充和更新。首先,在硬件方面,本书详细介绍了STM32的引脚布局和外设接口,包括GPIO、USART、I2C、SPI等,使读者能够充分了解STM32的基本硬件结构和功能。 其次,在软件方面,本书提供了详细的开发环境配置和编程指南。包括了Keil MDK开发环境的安装和使用、编译、调试和下载等操作步骤,并且给出了一些常见问题的解决方法。同时,作者还介绍了如何使用STM32的标准外设库进行编程,包括GPIO控制、中断处理、定时器、串口通信等。 除此之外,本书还介绍了一些实际应用案例,以帮助读者更好地理解和应用所学知识。例如,如何使用STM32控制LED灯、驱动液晶显示屏、读取温度传感器数据等。 总体而言,本书是一本系统全面的STM32自学教程。通过学习本书,读者可以了解STM32的基本原理和应用,掌握STM32的硬件配置和软件开发,从而能够独立完成STM32的项目开发。无论是初学者还是有一定基础的开发者都可以从本书中获得很大的收益。 ### 回答3: 《STM32自学笔记第3》是一本专门介绍如何自学STM32开发的书籍。本书主要针对初学者,通过详细的讲解和实践项目的演示,帮助读者快速上手STM32开发。 书中首先介绍了STM32系列微控制器的基本知识,包括硬件架构、外设功能和寄存器的使用等。对于没有接触过STM32的读者来说,这一部分对于理解后面的内容非常重要。 接着,书中从简单的LED控制开始,逐步引导读者学习各种外设的使用,如GPIO、定时器、UART等。同时,每个外设的使用都配有具体的实例代码和详细的注解,方便读者理解和实践。 书中还介绍了STM32开发中常用的开发工具和环境配置方法。从芯片选择、开发板选购到软件安装和项目配置,都有详细的指导。同时,书中还提供了一些调试技巧和常见问题的解答,帮助读者避开一些容易遇到的坑。 最后,书中还介绍了一些常用的外设应用案例,如按键控制、LCD显示、温湿度传感器等。通过这些案例,读者可以更好地理解STM32的应用场景和开发思路,提升自己的技能水平。 总的来说,《STM32自学笔记第3》是一本适合学习STM32开发的入门书籍。通过系统完整的内容和实例演示,读者可以快速掌握STM32的基本知识和开发技巧。无论是初学者还是有一定经验的开发者,都可以从中获得实际的帮助和启示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值