X17操作系统部分01
系统概述
操作系统的特点
/*
操作系统概述
操作系统是软件与硬件的桥梁
了解操作系统的特点
并发性
就是比如你一边打游戏,一边听音乐
相当于多线程,单核CPU在任务间频繁切换
就让你感觉多个任务同时进行一样,宏观上看起来就像同时进行
对应并行,就是3块CPU分别实行3个任务
并发宏观上看起来是并行
共享性
同一块CPU分给了多个任务同时使用
官方说法是系统中的资源
可供内存中多个并发执行的
线程或进程共同使用
然后有两个共享方式
互斥共享方式:
比如说一个音乐播放器,或者播放设备
只能一次性播放一首曲子
完后再播放其它音乐
同时访问方式
就是上面说的
比如你打游戏,和你听音乐
可以同时访问
这个访问也是宏观看起来像并行的
虚拟性
还是拿并发宏观上看起来是并行来说
看起来像是把一块CPU分成了3个
官方说法是通过某种技术
把一个物理实体变为若干个逻辑对应物
还可以分两种:
时分复用技术
虚拟处理机技术
就是让CPU在任务间频繁切换
使得并发宏观上看起来是并行
虚拟设备技术
就是外设
比如将打印机交给多个进程用
空分复用技术
虚拟磁盘技术
我们的电脑只有一块硬盘
但在文件资源管理器中
显示了4块:CDEF
这样会让盘清晰地分类
虚拟存储器技术
就是虚拟内存
Linux上叫做交换空间
举个装系统的例子
装个系统win10,有几10个G
但我的电脑只有16G
这个时候用到了虚拟内存技术
系统软件可以分时分段载入内存
不需要全部载入,不需要的可以导出
所以,表面上看起来
你有一块比16G更大的内存空间
异步性
还是拿并发宏观上看起来是并行来说
这里有3个线程
每个线程断断续续,随机执行
不按顺序,就叫异步
*/
操作系统的功能
/*
操作系统的功能
功能1:用户与硬件的接口
通过下面几种方式
命令方式:就相当于命令行工具,有两种方式
联机命令,也叫交互式命令
就是一句一句命令,操作系统一般会给出反馈
有时候需要根据反馈输入下一个命令,就是有一个交互的过程
脱机命令,也叫批处理命令
举个例子,就是把一堆命令写到记事本里面再改为.bat文件
就相当于把一堆命令列成清单,交给命令行处理
不去与命令行交互
系统调用方式:系统直接供用户调用的函数,比如关机指令
系统调用专门供应用程序使用
也可以读取某一个逻辑磁盘块,逻辑磁盘块指的类似于数组的元素
图形,窗口方式:window提供关闭,放大和最小化操作都是图形,窗口方式
还有类似window下的.bat文件,DOS窗口的批命令文件和UNIX下的shell文件等
功能2:资源管理者
处理机管理:分配和控制处理机,就是控制CPU做什么任务
存储器管理:主要负责内存的分配与回收,比如C语言变量就是存储在操作系统里面的,垃圾回收也是操作系统做的
I/O设备管理:就是输入输出设备,比如你启动打印机
文件管理:负责文件的存取,共享和保护,以后会细讲
功能3:扩充机器
也叫做虚拟机器,比如汇编语言编译器,解释器等
充当了软件的功能
*/
操作系统的发展与分类
/*
操作系统的发展与分类
手工操作,就是无操作系统
就是没有覆盖在机器上的操作系统软件
只能是人工操作硬件,操作系统就是人,这台机器所有资源都由人来调度
缺点是CPU很慢,只有一个用户能用
批处理系统,操作系统开始出现
没有交互的,一次性可以执行大量任务的操作系统,分为两个批处理系统
单道批处理系统的特点:
自动性(此任务完成自动切换到下一个),单道性(每次只能处理一个任务),顺序性(按顺序处理任务)
缺点:IO操作,就是输入输出操作时,CPU无事可做,CPU只能等IO操作提供数据
多道批处理系统的特点:
多道性,宏观上任务并行,微观上任务串行
优点:CPU利用率提高,内存利用率提高,IO设备利用率提高(比如你可以一边放视频显示器,一边放音乐播放器),
因此系统吞吐量提高
总的来说:
缺点:没有交互性
需要解决的问题:处理器管理问题,内存管理问题,IO设备管理问题,文件管理问题等
这里注意,计算操作对于IO操作来说,是不能并发执行的,如果有两个作业,不能同时计算,只能等上一个任务计算完毕
分时操作系统
特点:多路性,独立性,及时性,交互性
实时操作系统
特点:多路性,独立性,及时性,交互性和可靠性
多路性:可以按照划分极小的时间片来分给不同的用户,
比如第1毫秒分给A,下一毫秒分给B,让两个用户误以为自己独占了操作系统
独立性:宏观上让用户感觉这个操作系统是为自己独立存在的,照这么说,可以按独占性来理解
交互性:操作系统会给用户反馈,用户根据反馈来进行下一步命令
及时性:就是操作系统在根据用户的命令进行反馈的时候很快,就很及时
可靠性:更加严格了,像政府机构和军事基地,比如军工厂的防御系统,对及时性有硬性要求
微机操作系统,了解就行
单用户单任务:微软的dos系统
单用户多任务:window系统
多用户多任务:unix,Linux等
*/
操作系统概述补充内容
/*
补充知识点:
需要压栈保存的数据
程序计数器保存当前指令的地址,不保存的话就会忘记要执行的是哪一条指令
通用数据寄存器和通用地址寄存器缓存了当前指令所需要的数据
程序状态字寄存器,系统的状态,是在核心态还是在用户态
但在中断的时候,可能会发生用户态到内存态的转换
操作系统提供给用户的资源是
总的来说,硬件和软件
包括处理机,存储器,IO设备等
访管中断
目态下使用特权指令,目态向管态转变的中断
*/
/*
倒排文件
文件检索里面已经有了很多方法
让我们很容易根据一个记录的关键码查找到该记录全部信息的存放位置
从而能拿到该记录的全部其他属性值
但是在实际检索应用中
我们还经常需要根据记录中的
其他一些非关键码的数据项来作查
也就是根据属性的值来查找记录
所以我们也要对属性值建立索引
即索引表中的每一项均由一个具体可能出现的属性值
和给该值的记录地址两部分组成
这样,我们可以通过记录的某一项属性值
反过来查找到这个记录的存放地址,或者记录对应的关键码
我们称这种索引为倒排索引(inverted index)
拥有倒排索引的文件被称为倒排索引文件
简称倒排文件(inverted file)
*/