IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库三四级备考经验分享——操作系统原理知识点篇 -> 正文阅读

[大数据]数据库三四级备考经验分享——操作系统原理知识点篇

这个是跟着b站视频学了一遍所做的笔记,可供参考,如果也想看视频学习的话不妨就在其中添加一些内容,比自己重新做笔记应该轻松一些。


**

操作系统特征

1、并发性2、共享性:互斥共享 同时共享3、随机性“走走停停”
功能:进程管理、存储管理、文件、设备管理、用户接口
分类:
一、批处理系统 没有交互 自动化 资源利用率高 (作业控制说明书)SPOOLing假脱机技术 将独占设备改造成共享设备 (设备的虚拟分配)可以提高输入输出速度(设备工作时仍然可以提交 )输入井 输出井(磁盘上开辟)输入缓冲区输出缓冲区、输入进程和输出进程

二、分时系统。 交互。时间片轮转 (多路性、交互性、独占性、及时性)

三、实时系统。强调在规定时间内要。。。多路 独立 及时 交互 可靠!
四、嵌入式 精简专用多任务
五、个人计算机操作系统 友好方便
六、网络操作系统 网络管理功能 C/S和对等模式
七、分布式 八、智能卡
网络和分布式:主从关系的有无 共享的程度 协作的有无

结构:整体式(随意的互相调用) 层次式(也将大问题分解) 微内核(C/S)只剩最重要的功能
UNIX系统是多用户分时DOS OS/2 单用户

运行机制

一、CPU:运算器 控制器
访问寄存器最快
用户可见寄存器:数据、地址、条件码寄存器(运算溢出、符号等)
控制和状态寄存器:部分可用OS访问。程序计数器(指令的地址)、指令寄存器、程序状态字
处理器状态包含管态和目态 非特权指令(目态)。特权指令(管态) 引起处理器状态变换
目-管 中断 管-目PSW(修改程序状态字)
高速缓存在CPU和物理内存之间 利用程序局部性原理(将内存中某块数据附近的局部信息都提取到高速缓存里)使得高速指令处理和低速内存访问匹配

二、存储体系
1、层次结构
2、存储保护:界地址寄存器、存储键(键值对应)

三、中断与异常机制
使OS可以捕获用户程序发出的系统调用
处理中断请求
启动指定程序
特点:随机、可恢复、自动处理的
中断可以屏蔽,异常不行。 优处理优先级高的中断。 屏蔽就不中断了 硬件捕获。 软件处理
中断寄存器由若干个中断位组成
中断处理程序存储在中断向量表 根据中断码查找
I/O中断 时钟中断(时)硬件故障中断 程序性中断 系统调用中断

四、系统调用(管态)

五、I/O技术:通道 (I/O处理机)、DMA技术 (在内存和I/O之间!成块!传输数据)、
缓冲技术:单缓冲区、多缓冲区(Cache技术)一级、二级Cache

六、时钟:硬件提供
可分为硬件时钟、软件时钟。 绝对、间隔(相对)时钟(时钟寄存器实现)
源程序、目标代码属于流式文件

进程线程模型:
顺序执行的特征:顺序性、封闭、结果的确定性、结果的可再现性
多道程序系统特点:独立性、随机性、资源共享性
并发的特性:并发程序制约关系、程序与计算不在一一对应、结果不可再现
进程是正在执行的程序,动态、静态。程序是进程的一部分
进程的特性:并发、动态(前两种最基本)、独立、交往、异步性

进程的基本状态及转换:就绪状态(除了cpu外资源都获得了) 运行状态 (多处理器可多个运行状态)。等待状态(出现请求输入输出、申请额外空间等操作从就绪转变为等待)
在以上基础上进行扩展(创建状态,结束状态,挂起:把进程从内存放到外存 相对的 激活状态)
转换:新状态??就绪状态。 就绪状态??执行状态。 执行到阻塞(I/O等等)。执行到就绪(时间片或优先权低)。阻塞到就绪。 执行到终止。
一般没说明都是单处理环境

进程控制快(PCB)
进程:程序、数据、进程控制块
PCB表的组织方式:1、线性方式2、索引方式3、链接方式

进程控制:通过原语:创建、撤销、阻塞、唤醒

fork()函数:
父进程创建子进程,返回两个结果 PID 0
两个进程共享后面的代码

线程:进程的特点导致不能同时太多 限制并发性
将进程只作为资源分配和拥有的基本单位。 线程是进程调度的基本单位
线程之间也可以并发操作 增强并发性
线程可以访问属于进程的资源

线程的实现机制:用户级线程、内核级线程、混合式

Pthread线程包

进程调度

:高级(确定后备队列上那些作业调入内存)、中级(内存中处于等待的进程调至外存)、初级(进程调度 选一个给CPU)

调度算法设计原则:面向用户原则(快),面向系统(吞吐量)

进程、线程调度算法
1、先来先服务(FCFS)调度算法。有利于长进程 不利于短进程
2、最短作业优先调度算法(SPF)不利于长进程。 降低平均等待时间 提高吞吐量
以上两种为非抢占式的
3、最短剩余时间优先调度算法(SRT)
4、时间片轮转调度算法(RR)适合于交互进程的调度。(或许可以理解为抢占式的)
5、最高优先级调度算符,可以抢占或非抢占。 仲裁规则:随机或先进先出。 静态或动态优先权
优先权由用户或者系统赋予
6、多级反馈队列调度算符(MLF)抢占或非抢占 仲裁规则是轮转或按时间先后
7、实时

并发与同步

相关进程与无关进程
进程互斥:共享资源的占用
进程同步:一个进程的执行以另一个进程的结束
进程互斥:资源共享程度分为三个层次:互斥、死锁、饥饿
临界资源:一段时间内只允许一个进程访问或使用。
进程同步机制应遵循的原则:1空闲让进2忙则等待(保证互斥的访问临界资源)3有限等待4让权等待
(不能进入临界区时要释放处理器)

进程互斥的软件方法:1、单标志算法(让两个进程轮流使用临界资源)2、双标志、先检查算法(可以多次使用临界资源,会出现同时访问临界资源的问题)。又改进 3、双标志、后检查算法(会出现饥饿) 又又改进4、先修改、后检查、后修改者等待算法
进程互斥硬件方法:1、TS指令。 2、Swap指令
以上两种是平等协商方法,下面由操作系统进行管理的方法
信号量:>0可用资源数目 <0被阻塞的进程数目 =0两个都没有
P V操作。
同步问题:几个进程几个信号量。同一对PV操作在不同进程里面
互斥的话按照临界资源数量。
进程中同时出现互斥与同步的P操作,需要先执行同步信号量的P操作(进程可以运行然后申请资源/先都竞争某一种资源,没有申请到第一种的不能申请第二种),V的顺序没有要求
进程的同步问题:生产者-消费者问题

管程:管程名称、共享数据的说明、对该数据进行操作的一组过程、对共享数据设置初始值的语句
(大量PV操作容易出现问题)
wait原语:使处于阻塞。 signal原语:唤醒阻塞队列的首进程
特征:模块化、抽象数据类型(数据+代码)、信息屏蔽

进程通信:同步和互斥为低级通信。高级通信(管道通信)
通信方式:共享内存、消息机制(缓冲、信箱)、通过共享文件
管道通信系统用于实现共享文件,首创于UNIX系统
管道通信具有数据传输量大的特点,但缺点是速度较慢

存储管理:(讲的内存)

内存两个区域:系统区、用户区
存储器管理的主要任务:内存的分配和回收、存储共享、存储保护、权限保护
分配和回收的实现方法:1、位视图表示法(那些是空闲的)。2、空闲页面表(那些页是空闲的) 3、空闲块表
分配的方式:静态分配(执行速度快)、动态分配(允许申请额外空间/搬家)

存储共享:代码共享 数据共享
存储保护:1、地址越界保护2、权限保护3、存储键
扩充内存:虚拟存储技术(程序的一部分数据和指令放入内存即可运行)等交互技术

地址转换:逻辑地址转换为物理地址(重定位)
静态重定位:程序装入的时候就全部转化为绝对地址,不能再改变。快
动态重定位:每执行一条指令由硬件的地址转换机将逻辑地址转换为物理地址。 可以移动
逻辑地址+基址寄存器的值

固定分区(多道程序在内存中怎么放的)要求把作业全部装入一个连续的存储空间,一个作业只能装入一个作业,反之亦然;通过对分区分配表的改写(改写分区的状态)实现分配与回收。限制并发执行的作业数量。 另

可变分区 作业要求装入主存的时候动态地划分分区 使大小正合适 分区的大小和数目不固定
空闲表和分配表 分配算法?分区的分配和回收 进程也要全部装入连续存储空间
移动技术:碎片整理 移动会增加系统开销,且正在使用的数据和指令是不能移动的
采用的数据结构:已分分区表、空闲分区表(分区从小到大排序)。
先分配小地址、再大地址
常用的主存分配算法:(先小后大不太好):
1、最先适应分配算法(FF)从前往后找空闲分区表。容易产生主存碎片 地址递增顺序放分区
2、最优适应分配算法(BF)找能满足需求的最小分区 按空间长度递增顺序放分区 也容易产生主 存碎片。 尤其是小碎片。回收的时候开销大
3、最坏适应分配算法(WF)按长度递减的顺序放在空闲表中。影响大作业的分配。碎片少
4、下次分配算法

主存空间的回收:根据回收分区上下有无空闲分区分为四种情况。空闲区-1 上下都有空闲区。。。

覆盖技术:一个程序的若干程序段或几个程序的某个部分共享一个存储空间
交换技术:
页式存储管理:将作业地址分为若干个大小相同的区域,称为页面或页。主存空间分成大小相同的块,称为物理快或叶框。不用连续存放了。逻辑地址由叶号和业内地址组成。先找到块号,再确定物理地址,动态重定位。 全部装入
空间分配与回收:分配:1、数据结构:主存分配表(存页表首地址)、位示图(哪些使用了哪些没有,空闲块个数)、页表(页号对应的块号)。回收对应的
计算块数量的时候一个字节8位二进制

地址转换和块表:页号=长度/页长度;页内地址=长度mod/页长度 物理地址=。。+基址

页表:1、多级页表。2、散列页表。3、反置页表(多个进程共用一个页表)。
快表:对于页表,需要先访问内存中页表得到物理地址,在访问一次内存取数据。降低了速度
可以采用快表/两级页表的方法进行改进,主要说快表
快表存放在高速缓存里面,存放一部分常用的页表,第一次访问 同时找快表和页表。(计算选择题,共两次访问注意)

虚拟存储管理方式:仅装入一部分作业,最大容量与计算机地址线位数有关 2的根数次方的容量
物理容量也称为实际容量(前提最大容量要比你划分的物理容量大)

页式虚拟存储管理:增加了请求调页功能和页面置换功能(内存满了就置换)块数不等于页数
调入策略:(1)请求调页 只调一页(2)预调页 局部性原理。
置页策略:局部性原理
置换策略:1固定分配局部置换 2可变分配全局置换 3可变分配局部置换。可变即分配的块数可变。局部全局的意识:将内存中作业的一页调出去还是从内存空间挑一页调出去

页面置换算法:1、先进先出(FIFO)2、最近最久未使用算法(LRU)局部性原理 利用一个特殊的栈
3、最近最不经常使用算法(LFU)访问次数最少的走 4、理想页面置换算法5、最近未使用页面置换算法(NRU)分为四类按类淘汰 6、第二次机会页面置换算法(先进先出的改进,没被访问过又在队首的调出去) 7、时钟页面置换算法(第二次机会的改进)

段式存储管理方式:页式容易将逻辑上一段的内容分开 不利于信息共享
主程序段MAIN、子程序段X、数据段D、栈段S。 每一段长度不等
是二维的:逻辑地址由段号和段内地址组成

段页式存储管理方式:先分段再分页。先通过段表找到对应的那个页表,再找物理地址

文件管理

分类
操作系统中文件和相关目录的子系统统称为文件系统
文件按用途分类:系统文件、库函数文件、用户文件
按组织形式:普通文件、目录文件、特殊文件
还有保护方式、流向、存取时限、使用的介质类型
按组织结构:逻辑文件;物理文件:顺序、链接、索引文件

UNIX操作系统中文件分类:普通、目录、特殊文件

功能:1空间管理 分配回收 2按名存取 3共享 保护保密措施 4方便的接口 5提供与I/O的统一接口67

逻辑结构:用户直接看到并操作的。选择原则:查找快捷、修改方便、空间紧凑、易于操作

逻辑结构分为两类:有机构的记录式文件、无结构的流式文件

物理结构:外存上的组织结构。文件分配和传输的基本单位式物理块(物理记录)与物理设备有关与逻辑记录大小无关

物理结构的形式:1、顺序结构 逻辑上连续 物理上也连续 文件不能动态增长 分配内存慢 容易产生存储碎片。 可顺序存取/随机存取
2、链接结构 物理块不必连续 每一个块有指针指向下一个块 FAT使用的就是这一结构。只能顺序存取 但改指针实现动态扩充方便。存储碎片得以解决。磁盘磁头移动多,慢
3、索引结构。克服了上述缺点。索引:逻辑块号和物理块号的对应关系。寻道次数和寻道时间不太行。索引占用空间比较多。
管理索引的方式(解决索引太长的问题):1、索引表的链接模式 2、多级索引
I节点:多级索引。最早UNIX。前面几个直接对应物理块。然后一级索引,二级索引

文件的存储介质:1、顺序存储设备:磁带:从当前位置开始读区,物理块通过间隙区分;存取速度和信息密度与带速和间隙有关。容量比较大。
2、随机存储设备:可以存取任意物理块。磁盘。每个盘对应一个磁头。由磁道(同心圆 磁道号)、柱面(与中心距离相同距离的磁道的组合,所有磁头都在同一柱面上)、扇区(每个山区存放等量信息 扇区号)、磁头号(从上到下排序)
磁盘空间位置决定因素:柱面号、磁头号、扇区号。访问时间:寻道时间、延迟时间(旋转时间)、传输时间(数据的读写)
文件存取方式:顺序存储 、随机存储

文件目录:包含多条记录,每条记录为一个文件的文件控制块(FCB)最简单的记录包含文件名和文件的起始地址
目录项:FCB 目录文件:FCB的集合存储在外存
FCB:文件名、文件号、用户名、文件物理位置(对系统重要)、文件长度
文件目录的管理形式:一级目录(起始地址放的是索引表(逻辑块号和物理块号的对应)的位置)不便于实现文件共享,没有不同用户的概念,只适用于PC机单用户系统
二级目录:包含主文件目录(存用户文件目录)、用户文件目录。有用户的差别,适合于共享,可以实现保护和加密,只解决了不同用户(下面解决这个问题)之间同名问题
多级目录:UNIX DOS系统都采用了树型目录结构。主目录下面一级是用户目录。层次清楚,有利于文件的保护 ,解决了重命名问题,检索速度最快
根据路径检索的方法:全路径名(每次都从根目录开始)、相对路径名(从当前目录开始,本来就在内存 速度快)
文件目录的改进:目录项分解法(加快检索速度:先找符号目录项所在物理块,然后直接找到基本目录项):分为符号目录项(包含文件名、文件号)、基本目录项

存储空间的分配和回收:1、位图法2、空闲块表(序号 首空闲块号 空闲块表)适合顺序结构
3、空闲块链表 4、成组链接法

记录:通过关键字唯一标识
记录的成组和分解:逻辑记录的大小由文件决定,块大小根据存储介质特性。为了提高主存利用率引入。成组的时候需要用一下缓冲区

为了确保文件系统的安全性:1、建立副本(容量小)2、定时转储(用于容量较大的文件)3、规定文件的存取权限
文件的存取权限:1、存取控制矩阵 2、二级存取控制(把用户分组)

UNIX访问权限字母与数值的转换

文件保密:防止文件被窃取1、隐藏文件目录 2、设置口令(可靠性差) 3、使用密码(将文件信息翻译成密码形式保存)
文件系统的优化:
1、块高速缓存:
2、合理分配磁盘空间:把可能顺序存取的块放在一起
3、磁盘的驱动调度:服务顺序调整。减少磁头移动
磁盘调度算法:(1)先来先服务FCFS。会使磁头反复移动。移动跨度大
(2)最短寻道时间优先SSTF。经常改变方向,容易出现饥饿现象
(3)扫描算法(SCAN电梯算法):优先当前方向最近的
(4)循环扫描调度算法(C-SCAN):单向循环。会出现黏着现象(小范围移动)
旋转调度算法:
RAID可以提高读取速度,实现并行操作。提高备份技术

Windows的FAT文件系统:
FAT文件系统一簇为单位进行分配。12/16/32

UNIX文件系统:目录中为每个文件保留了一项,每个目录项包含文件名和I节点号。物理结构是三级目录结构

I/O设备管理:

按设备的使用特性分类:1、存储设备2、I/O设备(键盘 显示器 打印机)
按共享属性:1、独占设备 (打印机 SPooling技术 在外存上开辟输入井输出井 提交后由进程自动控制) 2、共享设备 (磁盘。宏观上多个进程进行访问)3、虚拟设备(虚拟打印机)
按信息组织方式:1、块设备(512B-4KB磁盘 磁带)。2、字符设备(键盘 显示器 打印机)
I/O的硬件组成:中央是CPU和主存,通过总线与第二层的接口部分相连,第三层各种外围设备控制器,最外层是外围设备。缓冲放在控制器里面
I/O设备数据传送控制方式:
1、程序直接控制方式(忙——等待 需要控制程序一直检测设备状态)
2、中断控制方式:任何预期或者非预期的时间,CPU暂停处理工作。根据中断码找到相应的中断处理程序代码执行。一次传输的数据还是不多,大量数据时中断多次,也不太行
3、直接存储器存取控制方式(DMA):对输入输出设备的控制由DMA控制器完成,设备和主存可以成批的进行数据交换,不用CPU干涉。CPU告诉控制器怎么做。一块数据中断一次
4、通道控制方式:I/O通道是一种特殊的处理机 通道放在内存中 CPU干预的更少,实现CPU I/O 通道 输入输出设备三者之间的并行操作。适用于大量数据交换
通道分成三种(1)选择通道 每次只允许一个设备传输数据。速度快
(2)字节多路通道。多个子通道轮转使用主通道,适用于低速
(3)数组多路通道。数据成组传输。适合于多个高、中速设备

缓冲技术:1、单缓冲。单向传输2、双缓冲。可双向适合于输入输出速度差不多的时候3、多缓冲。费空间。4、缓冲池。属于系统操作空间 用户只能通过系统调用来使用它们

I/O性能常常称为性能瓶颈:1、缓冲技术。2、异步I/O技术(中断)3、DMA。4、虚拟设备

死锁:

活锁:数据资源释放时间不确定,导致某些事务长时间等待,得不到封锁的机会。(一直把某个资源批给别人,不给他)“相关进程没有阻塞,可被调度,但是没有进展”
得不到资源会到就绪(忙——等待。不放弃CPU 低效的 不停的查看。活锁)或者阻塞状态(主动放弃CPU高效的。饥饿)
死锁的原因:1、竞争资源。2、进程的推进顺序不合理。
产生死锁的必要条件:1、互斥条件(临界资源)2、不剥夺条件 3、请求和保持条件:请求得不到满足我也不释放资源4、循环等待条件

解决死锁的方法:
1、预防死锁:资源分配时加限制条件,会导致资源利用率下降
2、避免死锁:资源分配过程中对资源分配进行管理,限制较小,吞吐量较高。用的最多
3、检测死锁:
4、解除死锁:没有限制。实现难度大
死锁的预防:
破坏‘互斥条件’:让资源不被独占。难度大
破坏‘不剥夺’条件:申请得不到满足,释放已有资源。开销大,会出现多次释放 申请现象
‘请求和保持’:一次性申请所有资源。有些稍微资源一用但是一直占用
‘循环等待’:给资源排序赋予资源序号,资源数目最少的方在最前面,从前到后申请资源。申请到这个才能申请后面的不会再出现环路。
以上方法都不方便
死锁的避免:

安全状态和不安全状态:只要存在能顺利执行的资源分配顺序,就是安全状态。进入不安全状态才有可能发生死锁
银行家算法:Dijkstra 和Habermann
拿现有资源和每个进程的尚需资源比较,找到一个可以执行的,新的可用资源为原有+释放的。重复该过程

死锁的检测与解除机制:
死锁的解除:1、剥夺资源法。2、撤销进程法
资源分配图(发现死锁进程):箭头指向边框:我要用一个这种资源。 箭头指向框内某个资源:我要申请这个资源
死锁定理:资源分配图中没有环路,不会出现死锁;出现环路,可能会出现死锁
如果环路中每个资源的数目只有一个,则有死锁。不是只有一个,则可能。
资源分配简化法:不是完全可简化的,则有死锁

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:51:47  更:2021-10-15 11:52:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:11:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码