发展史
https://mp.weixin.qq.com/s/eRs7AK5ZS_Oth9fUrESI5Q
计算机CPU单核设置
-
参考
- https://cloud.tencent.com/developer/article/1427292
- https://www.cnblogs.com/inception6-lxc/p/9073983.html
- https://zhuanlan.zhihu.com/p/86629244
- https://blog.csdn.net/gui951753/article/details/79489748
- https://blog.csdn.net/xiongluo0628/article/details/81461053
- 系统介绍
问题
|
- 程序如何进入到内存,处理器如何执行
exe文件执行
https://blog.csdn.net/weixin_34122548/article/details/92395747 | 程序装入执行流程
装载加载 磁盘进入内存 调度 还干了什么
pcb进程 | | | —- | —- | —- |
课程 操作系统教程 屠鸿章
|
- 实验
操作系统上机大纲(2017).docx
学号姓名实验X_操作系统实验报告.doc
学号姓名实验X操作系统实验报告说明文件.doc
学号姓名实验X操作系统实验报告说明文件.doc
操作系统上机指导书-实验一.doc
操作系统上机指导书-实验二.doc操作系统上机指导书-实验三.doc操作系统上机指导书-实验四.doc操作系统上机指导书-实验五.doc学号姓名实验X_操作系统实验报告.doc
学号姓名实验X操作系统实验报告说明文件.doc |
- 课设
操作系统课程设计大纲.docx
操作系统课程设计任务书(19-20-1).doc
数媒171赵逸帆_202170440.docx |
- 考试
![W(3CMHREHHP{ZNX2WY}~`6.png
第一次作业.docx
操作系统习题课.pptx
操作系统习题整理-2.docx |
| —- | —- | —- |
操作系统
- BIOSBasic Input Output System基本输入输出系统
- Windows
- windows9x 98 3x
- WindowsNT xp ME
- WindowsVista windows2000
- windows7810
- DOS
- unix
- linux
- macox
- multics分时操作系统
操作系统内核OperatingSystemKernel
- 原语Primitive是在操作系统内核中,由若干条指令构成的,运行在管理态下的完成系统特定功能的一个过程。
操作系统调度
- 低级进程调度
- 中级
- 高级作业调度
处理器Processor管理
| |
- 用户空间和内核空间
- 进程切换
- 系统调用(system call)
- 中断(interrupt)
|
- 死锁 饥饿
| | —- | —- | —- | |
- 同步(Synchronous)异步( Asynchronous)
- 阻塞( Blocking )非阻塞( Nonblocking)
- 怎样理解阻塞非阻塞与同步异步的区别? - 大姚的回答 - 知乎 https://www.zhihu.com/question/19732473/answer/26101328
| 特性
原子性、可见性、有序性 | 语句指令关系
n = n + 1;
看上去是一行语句,实际上对应了3条指令:
ILOAD
IADD
ISTORE |
处理器状态
- 用户(管)态KernelMode 核心(目)态UserMode
- 特权指令Priviledged Instruction
- 启动I/O 进程管理
- 非特权指令
- 算数运算 取数指令 访管指令陷入指令
特权级privilege level ring0,r1,r2,r3保护环(protection ring)特权环
程序Program
单进程多线程-多进程多线程
- 系统程序 应用程序 后台程序 用户程序
-
进程Process
进程是并发环境下,一个具有独立功能的程序在某个数据集上的一次执行活动,它是操作系统进行资源分配和保护的基本单位,也是执行的单位。
- 进程状态与转换
- 新建态New
- 运行态Running-就绪态RUNNABLE READY
- 阻塞态Blocked-等待态WAITING-定时等待TIMED_WAITING
- 终止态Exit Dead TERMINATED
- 挂起Pending激活activation
- 进程控制块(ProcessControlBlock,PCB)进程上下文ProcessContext
- 标识信息-描述信息-现场信息-管理和控制信息
- 进程队列ProcessQueue
- 进程映像ProcessImage进程的内存映像
- 程序块-数据块堆栈-PCB
进程调度-处理器调度
类型
并发Concurrent
同一时间段多个进程运行态
程序的并发执行的“并发(Concurrency)”,是指一个程序的执行还没有结束,另一个程序就已经开始。- 相关并发
- 竞争关系
- 协作关系
- 无关并发
-
互斥MutualExclusion-Mutex同步Synchronization
同步
- 协同步调,按预定的先后次序进行,不是字面上的意思同一动作
- 同步机制 线程协同进程通信
- 信号量(Semaphore)P(上锁)V(解锁)操作
- 互斥对象锁Mutex
- 管程(Monitor)
- 临界区(CriticalSection)
- 临界资源(CriticalResource)
- 并发度ConcurrencyDegree
问题
- 生产者/消费者问题
- 读者/写者问题
- 哲学家就餐问题
- 理发师问题
- 死锁Deadlock
高级进程间通信(IPC,InterProcessCommunication)
(1)管道文件通信方式:管道文件是连接两个命令的一个打开文件。一个命令向该管道文件写入数据,另一个文件从该管道文件读出数据。该管道文件成为两个命令交换信息的桥梁。在UNIX操作系统中,在命令级的管道机制具有很强大的功能。
(2)共享存储器方式:在内存区域开辟一个共享存储区,需要交换信息的进程将该共享存储区纳入到进程自己的地址空间中去,这样进程之间通信成为可能,当不需要进行通信时就把该共享存储器取消。
剪贴板,复制粘贴
(3)消息传递方式:该方式以消息为单位在各个进程之间进行信息交换。当前的操作系统以及网络系统中,消息传递方式得到了广泛的使用。实际上,管道方式也可以看做是消息传递方式的一种变种。消息传递方式实现进程间的通信,不仅可以传递大量信息,而且该种方式下,不仅可以使用在本计算机系统的共享存储器中,还可以使用在分布式的非共享存储器环境。并且,从使用上看,在分布式环境下的消息传递机制,使用起来就像在本机上一样简单。
C实践参考https://www.cnblogs.com/zgq0/p/8780893.html系统中断Interrupt
状态切换
- 上下文切换(context switch)也就是PCB内容的输入输出
- 系统调用SystemCall 访管指令trap指令
open函数 - 异常 缺页异常
外围设备中断
高速缓冲存储器=缓存
- 主存储器=主存=内存 用户区系统区
-
存储管理StorageManagement 装入程序
功能
内存分配回收
- 地址转换=地址重定位
- 静态重定位-动态重定位
- 物理地址
物理地址是指内存单元的地址,又称为绝对地址、实地址。物理地址的集合称为物理地址空间,又称为绝对地址空间、实空间、存储空间。物理地址一般是按字节从0开始连续编码的,物理地址空间的大小就是内存容量的大小。 - 逻辑地址
逻辑地址是指用户程序使用的地址,又称为相对地址、虚地址。逻辑地址的集合称为逻辑地址空间,又称为相对地址空间、虚空间、地址空间。用户编写的源程序通过编译、链接生成的可执行程序就构成了逻辑地址空间,起始地址一般也从0开始编码。
-
实存管理
实存管理要求作业运行时全部装入内存。
分区
- 分页
-
虚存管理 页表
虚存管理只要求作业运行时部分装入内存。
请求分页虚拟存储管理请求分页系统是在简单分页式存储管理技术的基础上,增加了请求调页功能和页面置换功能所形成的分页式虚拟存储系统。它只需把用户程序的部分页面(而非全部页)装入内存,就可以启动运行,以后再通过请求调页功能和页面置换功能,陆续把将要运行的页面调入内存,同时把暂不运行的页面置换到外存上,置换时以页面为单位。
- 请求分段虚拟存储管理请求分段系统是在分段系统的基础上,增加了请求调段功能和分段置换功能所形成的分段式虚拟存储系统。它只需把用户程序的部分段(而非全部段)装入内存,就可以启动运行,以后再通过请求调段功能和置换功能将不运行的段调出,同时调入将要运行的段,置换时以段为单位。
请求段页式虚拟存储管理这是分页和分段存储管理方式的结合,即将用户程序分成若干个段,再把每一段分成若干个页,相应地将内存空间划分成若干物理块,页和块的大小相等,将页装入块中。请求段页系统同样提供请求调页功能和页面置换功能。这种存储管理方式不但提高了内存的利用率,而且又能满足用户的要求。
页面置换算法 缺页置换
(1)最佳置换算法——OPT(Optimal)置换算法OPT是一种理想的置换算法。当要调入一页面而必须淘汰一个旧页面时,所淘汰的页面应该是以后不再访问的或距现在最长时间后再访问的页面,该置换算法的缺页中断率最低。然而这只是一种理想,因为程序运行过程中无法断定以后要使用的页面的情况,所以该算法是不可能实现的,但我们常把它作为衡量其他置换算法效率的标准。
- (2)先进先出置换算法——FIFO(First In First Out)置换算法FIFO是最早出现的置换算法,该算法总是淘汰最先进入主存的页面。特点是实现简单,但因为与进程实际的运行规律不适应,所以算法效率不高。
- (3)最近最久未用置换算法——LRU(Least Recently Used)置换算法LRU算法每次都选择最近最久未使用的页面淘汰,即总是淘汰最后一次访问时间距当前时间间隔最长的页面。该算法的思想依据是根据程序执行时所具有的局部性来考虑的,也就是说,刚被访问过的页面再次被访问的概率较大,而那些较长时间未被使用的页面被访问的概率要小。LRU置换算法是一种通用的有效算法,因而被广泛采用。
- (4)二次机会置换算法——SC(Second Chance)置换算法本算法是对FIFO算法的改进。FIFO算法可能会把经常使用的页面淘汰掉,从而造成页面频繁移入移出的现象。二次机会置换算法依据FIFO算法,同时考虑页表中每个页面的“访问位”。如果FIFO队列的队首页面的“访问位”为“0”,表示它在主存的时间长而且没有非被访问,则可以将它淘汰掉;相反如果队首页面的“访问位”为“1”,表示它在主存的时间长但被访问过还有用,则把它的“访问位”置为“0”,并移到队尾,把它看成一个新调入的页面,再给它一次机会,重复此操作,直到找到一个在主存时间最长而又不被访问的页面,将它淘汰出去。
- (5)时钟(Clock)置换算法二次机会置换算法有一个缺点是需要将访问位为1的页面移至队尾,这需要一定的开销。改进的方法是采用环形链表表示进程所访问的页面,引入一个指针指向最早进入主存的页面,这样只需移动指针来查找满足条件的页面。首先检测指针所指向的页面,如果它的访问位为0,则淘汰该页面,将新调入的页面插入此位置,并将指针前进一个位置;如果它的访问位为1,则将该位清除为0,并将指针前进一个位置,继续重复此操作,直到找到访问位为0的页面为止。因为指针在环形链表中移动就像表针在时钟表盘上转动一样,所以该方法取名为时钟置换算法。
- (6)最近未用置换算法——NRU(Not Used Recently)置换算法这是一个被广泛使用的LRU算法的近似方法,它比较易于实现,开销也比较少,此置换算法,不但希望淘汰的页是最近未使用的页,而且还希望被挑选的页在主存驻留期间,其页面内的数据未被修改过。为此,要为每页增设访问位和修改位,初始值均为0,当页面被访问或修改时,修改相应位的值为1,并且系统每隔固定时间将页面的访问位清0。当要淘汰某页面时,如果它的访问位和修改位均为1,则需先将页面写回辅存,然后在淘汰;否则直接将其淘汰掉。
文件系统
- FATFile Allocation Table文件配置表FAT16 FAT32
- NTFSNew Technology File System
- ntfs重解析点
- exFAT Extended File Allocation Table File System,扩展FAT
设备Device管理
磁盘驱动Drive调度
磁盘结构
- 磁盘-移动臂-磁头-转轴
- 盘片-盘面
- 扇区-柱面-块
- 磁盘访问:访问一个磁盘需要三个参数,即柱面号、磁头号和扇区号。
磁盘调度
(1)寻找时间(也称为寻道时间、查找时间):磁头在移动臂的移动下定位到指定柱面所花费的时间。这是一种机械运动,可以看做是一种匀速运动,因此,降低移动距离就是减少了寻找时间。此外,尽量减少磁头的方向改变,频繁的方向改变会使磁盘效率降低,一般约20ms。
(2)延迟时间:指定扇区旋转到磁头位置所花费的时间。这也是一种机械运动。由于现在的磁盘特别是硬盘转速很快,因此,延迟时间相比寻找时间,是次要因素,一般约10ms。
(3)传输时间:由磁头把扇区中的信息读入到内存或将信息写入到指定扇区所花费的时间。该时间是电子运动所花费时间,相对前两项时间微不足道,计算机操作系统设计人员也无法优化该时间。
可见,对磁盘的一次访问,是一个“先移后转再传输”的过程。
磁盘移臂调度
- 先来先服务(First Come First Served)
- 最短寻找时间优先(Shortest Seek Time First)
- 单向扫描(Uni-Scan)
- 双向扫描(Double Scan)
- 电梯(Elevator)
磁盘旋转调度
在磁盘调度中,除了移臂调度外,还要考虑旋转调度。旋转调度的目标就是减少延迟时间,从而降低磁盘访问总时间,提高磁盘I/O性能。
当移动臂到达指定的柱面后,假如有多个请求者在等待访问该柱面上的扇区,应该选择延迟时间最短的请求者去执行,根据延迟时间来决定磁盘请求者的执行次序的调度称为旋转调度。
设备I/O控制方式
- 轮询方式
- 中断方式
- DMA方式
- 通道方式
freeBSD
- 见到过
X windows
- 图形用户接口
- opengl用到