总结是对某一特定时间段内的学习和工作生活等表现情况加以回顾和分析的一种书面材料,它能够使头脑更加清醒,目标更加明确,让我们一起来学习写总结吧。总结书写有哪些要求呢?我们怎样才能写好一篇总结呢?下面是小编整理的个人今后的总结范文,欢迎阅读分享,希望对大家有所帮助。
操作系统概念总结篇一
一、导论
1.操作系统做什么
① 冯诺依曼体系结构
② os角色:对上:控制程序正确执行,使用方便;对下:资源分配器
③ 核心功能:进程管理,内存管理,文件管理,输入输出,保护和安全
2.计算机系统组织
① 中断
② 存储结构:寄存器→高速缓存→主存→电子磁盘→光盘→磁带
③ i/o结构:i/o的同步、异步;慢速设备(中断)快速设备(dma)
3.操作系统结构:多道(使cpu总有一个任务执行)、分时(高频率切换任务)
4.进程管理
① 进程有其生命周期,进程是执行中的程序
② 管理活动:创建或删除用户或系统进程;挂起或重启进程;防死锁;提供进程
同步、通信机制
③ 目的:使进程可以运行,相互协调不死锁
5.内存管理
① 目标:内核健壮
② 保护方法:独立操作模式:用户模式,内核模式;计数器定时中断防止死循环
6.存储管理
① 解决问题:速度匹配→缓存(缓存的命中率)
② 等级问题:一致性;多处理器下各缓存的一致性
二、操作系统结构
1.操作系统服务:用户界面,程序执行,i/o操作,文件系统操作,通信,错误检测,资源分配,统计,保护和安全。
2.操作系统的用户界面:命令解释程序,图形用户界面
3.系统调用类型:进程控制,文件管理,设备管理,信息维护,通信
4.系统程序分类:文件管理,状态信息,文件修改,程序设计语言支持,程序装入和
执行,通信,系统工具,应用程序。
5.操作系统结构:
① 简单结构(ms-dos):小空间多功能,应用程序直接操作硬件,不安全,无模块,接口和功能层次没有区分
② 分层法:难划分,效率低,但是构造和调试简单化
③ 微内核:包括最小的进程和内存管理以及通信,便于扩充操作系统。
④ 模块化:动态加载模块,允许内核提供核心服务,也能动态的实现特定的功能 ⑤ 组合结构
第二部分进程管理
一、进程
1.进程的概念
① 进程通常包括:程序计数器,栈,数据段
② 进程状态:新建,运行,等待,就绪,终止
③ 进程控制块pcb:进程状态,程序计数器,cpu寄存器,cpu调度信息,内存
管理信息,记账信息,i/o状态信息
④
2.进程调度
① 调度队列:作业队列,就绪队列,设备队列p80
② 调度程序:长期调度程序(作业调度程序):从作业池中选择进程,并装入内存
准备执行。短期调度程序(cpu调度程序):从准备执行的进程中选择进程,并为之分配cpu时间。中期调度程序:能将进程从内存中移出。
长短期的区别是执行频率;长期调度控制多道程序设计的程度,中期调度可以降低多道。
③ i/o绑定进程,cpu绑定进程
④ 上下文切换:将cpu切换到另一个进程需要保存当前进程的状态和恢复另一进
程的状态。
3.进程操作
① 进程创程:创建新进程的执行方式(父子进程并发执行;父进程等待直到某个
或全部子进程执行完毕)
新进程地址空间(子进程是父进程的副本;子进程装入另一个新程序)
资源共享(所有/子集/不共享)
② 进程终止
父进程终止子进程的原因(子进程使用了超过它分配的资源;分配给子程序的任务不需要了;父进程结束)
4.进程间通信
① 通信基本模型:共享内存,消息传递
② 共享内存:消费者可能等待生产者;无限缓冲区,有限缓冲区的区别
③ 消息传递:
命名:直接通信(对称寻址:接受者命名发送者;非对称寻址:接受者不需要命名发送者)间接通信(邮箱、端口的参与)
同步:阻塞与非阻塞(发送,接收),同步与异步
缓冲:零容量(无缓冲);有限容量、无限容量(自动缓冲)
5.客户机-服务器通信:套接字socket,rpc远程调用,rmi远程方法调用
二、线程
1.概述:多线程优点:响应度高,资源共享,经济,多处理器体系结构的利用
2.多线程模型:用户层的用户线程或内核层的内核线程,用户线程受内核支持,而无
需内核管理,而内核线程由操作系统直接支持和管理,这两种方法支持多线程。① 多对一模型(效率比较高,阻塞系统调用的后果)
② 一对一模型(更好的并发功能,缺点是创建一个用户线程就需要一个内核进程)③ 多对多模型(用户可以创建任意多的线程;二级模型=多对多+一对一)
3.多线程问题
① 系统调用fork().exex()
② 线程取消异步取消(立即终止),延迟取消(检查是否应该终止)
③ 信号处理:信号必须有一个处理程序
④ 线程池:优点(处理请求速度快,线程数量可控制)
三、cpu调度
1.基本概念
① cpu区间和i/o区间的概念
② 抢占与非抢占调度的概念(发生在:一个进程从运行切换到等待、运行切换到
就绪、等待切换到就绪、以及终止,1,4非抢占,2,3抢占)
2.调度准则:cpu利用率(使cpu尽量忙),吞吐量(测量工作的方法),周转时间(从
进程提交到完成的时间),等待时间,响应时间
3.调度算法
① 先到先服务调度fcfs(非抢占的)
② 最短作业优先调度sjf(抢占,最优算法,难知道下一cpu区间长度,用于长
期调度)
③ 最短剩余时间优先调度srtf(强占式的sjf,适合长期调度)
④ 优先级调度(问题:无穷阻塞或饥饿,老化来解决;非抢占方式不用占用cpu
切换)
⑤ 轮转调度rr(专为分时系统设计,是可抢占的,时间片过大变为fcfs,时间片
过小等待时间段,但是切换频繁)
⑥ 多级队列调度(前台与后台的调度算法不同,rr与fcfs)?
⑦ 多级反馈队列调度
⑧ 实时调度:硬实时(在特定硬件上保证时间),软实时:尽力而为,优先级不变,没有饥饿现象
4.算法评估
① 确定性模型甘特图
② 排队模型 n=入*w(n平均队列长度,w为队列的平均等待时间,入为新进程
到达队列的平均到达率)
③ 模拟
④ 实现
四、进程同步
1. 背景:竞争条件:共享内存,共享变量
2. 临界区问题
① 临界区解决方案:进入去,临界区,退出区,剩余区
② 效果:互斥,有空让进,有限等待
③ 证明:1.互斥,临界区一个时间只能有一个进程2.前进,临界区内无进程执行,那么只有那些不在剩余区内执行的进程可参加选择,这种选择不能无限延迟3.有限等待,从一个进程做出进入临界区的请求,知道该请求允许为止,其他进程允许进入其临界区的次数有上限。
④ peterson算法
3. 信号量:计数信号量,二进制信号量
① 技术信号量用于控制访问:当每个线程需要使用资源时,需要对该信号量执行
acquire()操作,当线程释放资源时,需要对该信号执行release()操作。
② 用信号量解决同步问题
4. 管程:管程结构确保一次只有一个进程能在管程内活动
5. 经典同步问题
① 生产者消费者问题
② 读者写者问题
③ 哲学家吃饭问题
五、死锁
1.死锁特征
① 必要条件:互斥,占有并等待,非抢占,循环等待
② 资源分配图:分配图没有环则没有死锁,有环则有死锁;有环则可能有死锁。
2.死锁预防
① 互斥:通常不能通过否定互斥条件来预防死锁:有的资源本身就是非共享的。② 占有并等待:协议一:每个进程在执行前申请并获得所有资源;协议二,允许
进程在没有资源时才可以申请资源。协议缺点:资源利用率低,可能发生饥饿。③ 非抢占:协议:如果一个进程占有资源并申请另一个不能立即分配的资源,那
么其现在已分配的资源都可被抢占。
④ 循环等待:对所有资源类型进行完全排序,且要求每个进程按递增顺序来申请
资源。
3.死锁避免
① 安全状态:如果系统能按某个顺序为每个进程分配资源并能避免死锁,那么系统
状态就是安全的。
② 单实例:资源分配图:申请边,分配边,需求边
③ 多实例:银行家算法available(向量),max(矩阵),allocation(矩阵),need(矩
阵),4.死锁检测
① 单实例:等待图:当且仅当等待图中有一个环时,系统存在死锁
② 多实例:类似银行家算法
5.死锁恢复
① 进程终止:终止所有死锁进程;一次只终止一个进程,直到取消死锁循环为止 ② 资源抢占:问题:选择一个牺牲品;回滚;饥饿
第三部分内存管理
一、内存管理
1.背景
① 地址绑定:编译时(编译时就知道进程将在内存中的驻留地址,那么就可以生
成绝对代码),加载时(生成可重定位的代码),运行时(如果进程在执行时可以从一个内存段移到另一个内存段,那么绑定必须延迟到执行时才进行)
② 逻辑地址(cpu所生成的地址)物理地址(内存单元所看到的地址)
③ 动态加载(子程序只在调用时加载,优点不用的子程序绝不会被加载)④ 动态链接与共享库(将连接延迟到运行时)
2.交换(没看)
3.连续内存分配:单分区,多分区
4.非连续内存分配:分页(分页技术不会产生外部碎片)
5.动态存储分配问题:首次适应,最佳适应,最差适应
6.页表结构:层次页表,哈希页表,反向页表
二、虚拟内存
1.背景
① 多道尽可能多的程序,这也是内存管理的目标
② 虚拟内存好处:可以运行比物理内存大的程序;更快的启动和响应(载入更快);
更多的多道;更容易的共享文件盒地址空间;更少的输入输出。
2.按需调页:在需要时才调入页
① 有效位-无效位来来确定页是否在内存
② 有帧就加入,无帧就换页,页错误处理流程:检查内部表确定引用是否合法→
非法则终止,合法则调入→找到空闲帧,装入内存→修改内部表→重启指令 ③ 按需调页的有效访问时间:effective access time=(1-p)*ma+p*处理页错误的时间
3.页面置换(引用串)
① fifo 先入先出
② 最优算法:向后看,换页的时候看内存中哪个页最晚用;是所有算法中产生页
错误最低的算法;问题:需要引用串的未来知识
③ lru最近最少使用算法:往前看,内存中哪页在列表序列中离的最远,无belady
异常
④ 算法实现:计数器(最近最少使用:换计数器值最小的)代价大:系统级,可
能溢出,一定会写全表
页码堆栈:每当引用一个页,该页就从栈中删除并放在栈顶。严格实现,但是代价高。
二次机会:引用位,引用时改为1,;换页时,是1则置零,是0则换
计数算法:lfu最不经常使用,mfu最经常使用(可采用老化)
4.帧分配
① 分配策略限制:所分配的帧不能超过可用帧的数量,大于最小需求
② 每个进程帧的最少数量是由体系结构决定的,而最大数量帧是由可用物理内存
决定的。
③ 当指令完成之前出现页错误,该指令必须重新执行
④ 帧分配方法:
固定分配:平均分配、按比例分配
优先级分配:全局置换(帧数可变),局部置换(固定);全局置换算法的一个问题是进程不能控制其页错误率,但是全局置换通常会有更好的系统吞吐量,且更为常用。
5.系统颠簸
① 颠簸产生的原因:抢帧→i/o上升→cpu使用率降低→多道继续增加→忙于换页 ② 工作集合策略防止了颠簸,并尽可能的提高了多道程序的程度,可以通过页错
误频率pff来直接测量和控制页错误以防止颠簸。上限之上分配更多,下限之下,减少帧数
6.其他问题
① 预调页关键问题:采用预调页的成本是否小于处理响应页错误的成本。② 页大小问题:最佳页大小的选择,大页,小页
③ 优化程序结构
第四部分存储管理
一、文件系统接口
1.文件概念
① 文件是逻辑外存的最小分配单元,即数据除非在文件中,否则不能写到内存中。② 文件操作:写,读,重定位,删除,截短
③ 文件加锁:共享锁,专用锁;强制,建议文件加锁机制
2.访问方法:顺序访问,直接访问,其他方法(索引)
3.目录结构
① 目录操作:创建文件,删除文件,遍历目录,重命名文件,跟踪文件系统 ② 评价目录结构:命名(不同文件同名),分组(同一文件不同命名)
③ 单层结构目录(命名,分组均无),双层结构目录(可命名不可分组),树状结
构(绝对,相对路径;可命名分组),无环图目录(硬链接,软链接),通用图目录
二、文件系统实现
1.文件系统结构:应用程序→逻辑文件系统→文件组织模块→基本文件系统→i/o控
制→设备
2.目录实现:线性列表(编程简单,运行费时,查找文件需要线性搜索)
哈希表(采取策略避免冲突)
3.分配方法
① 连续分配:每个文件在磁盘上占有一组连续的块;困难时为新文件找到空间,外部碎片问题也可能很大,确定文件分配多大空间,② 链接分配:解决了连续分配的所有问题;必须顺序访问文件,指针需要空间,由于指针分配在整个磁盘,可靠性就成了一个问题。
fat文件分配表:改善了随机访问时间,但是需要大量磁头寻道时间
③ 索引分配:把所有指针都放在一起,构成索引块;支持直接访问,且没有外部
碎片问题,但是会浪费空间;索引块分多大是个问题
链接方案(一个索引块可以指向另一索引块构成链接)
多层索引(第一个索引块指向第二个索引块,第二个指向文件数据块)
组合方案p404 n级间接块(计算)
4.空闲空间管理:为向量(1空0满)块号码计算:(值为0的数字)*(一个字的位
数)+第一个值为1的位的偏移;链表(所有空闲的块用链表链接起来);组(将n个空闲块的地址存储在第一个空闲块中);计数()
操作系统概念总结篇二
操作系统:
是管理系统资源,控制程序执行,协调硬件使用的最基本的系统软件,在硬件的基础上提供一个基本的应用程序运行环境。
多道程序multiprogramming:
在计算机内存中存放多个作业,这几个作业通过调度程序轮流占用cpu。
分时系统 time-sharing:
允许多个用户同时以交互方式使用计算机,共享主机资源。
内核 kernel:
操作系统最基本的部分,提供进程和内存管理功能,具有访问硬件和所有内存空间的权限。微内核 microkernel:
提供最小的进程和内存管理及通信功能的内核模块
系统调用 system call:
由操作系统实现的对系统功能调用的应用编程接口。
虚拟机 virtual machine:
通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。中断/陷阱 interrupt:
指系统发生某个事件后,cpu暂停正在执行的某个程序,转去执行处理该事件的程序的过程。
直接内存访问 dma:
直接内存访问是一种硬件机制,它允许i/o设备和内存之间直接传输它们的i/o数据,而不需要cpu的参与。使用这种机制可以大大提高与设备通信的吞吐量。
c/s模型:
将应用程序分成需要访问文件的前端客户端和包含文件的后台服务器,客户端通过向特定服务器发送请求获得资源。
进程 process:
指正在执行中的程序,是一个活动实体。
高速缓存一致性 caching coherency:
对于多处理器环境,每个cpu不但要维护自己的内部寄存器,还要维护本地高速缓存。由于多个cpu可并发执行,必须确保在一个高速缓存中对a的值所做更新立即反映在所有其他a所在的高速缓存中。
进程控制块 pcb:
进程在操作系统里的表示方法,包括进程状态、进程号等信息。
进程间通信 ipc:
协作进程见通信的一种机制,允许进程不必通过共同地址空间共享来通信和同步。双重模式 dual mode:
指操作系统提供的两种执行模式:用户模式和监控模式。目的是保护操作系统和其他所有程序数据不受错误用户程序的影响。
套接字 socket:
可定义为通信的端点,由ip地址和端口号组成。每个参与通信的进程都拥有一个套接字。线程 thread:
又称轻量级进程,是cpu使用的基本单元,由线程号、程序计数器、寄存器集合和堆栈组成。
用户级线程 user thread:
用户线程在内核之上支持,并在用户层通过线程库来实现。无需内核干预,因此线程易于创建和管理,但有可能会引起拥有该线程的整个进程的阻塞。
内核级线程 kernel thread:
由操作系统直接支持,内核在其空间里创建、管理的线程。
短期调度程序 short-term scheduler:
又称cpu调度程序,从就绪可执行的进程中选择进程,并为其中之一分配cpu。中期调度程序 mid-term scheduler:
中期调度程序采用交换方案,能将进程移出内存,降低多道程序设计的程度。之后进程能被重新调入内存并从中断处开始执行。
长期调度程序 long-term scheduler:
又称作业调度程序,是从大容量存储设备的缓冲池中选择进程将它们装入内存以执行。交换 swap:
当内存剩余空间不够大时,进程可以暂时从内存中交换到硬盘上的特定存储空间,等到需要执行时再调回内存。
上下文切换 context :
将cpu切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。当发生上下文切换时,内核会将旧进程的关联状态保存在其进程控制块中,然后装入经调度要执行的新进程的已保存的关联状态。
分派程序 dispatch:
分派程序是一个模块,用来将cpu的控制权交给由短期调度程序所选择的进程,其功能包括切换上下文、切换到用户模式、跳转到用户程序的合适位置重新启动用户程序。进程同步 process synchronization:
多进程的一些操作执行的时序上存在一定的制约条件。
竞争条件 race condition:
多个进程并发访问和操作统一数据且执行结果与访问发生的特定顺序相关。
临界区 critical section:
一个代码段,在该代码段里进程会可能改变共享数据。
互斥 mutual exclusion:
如果进程pi在其临界区内执行,那么其他进程都不能在临界区内执行。
前进要求 progress:
当无进程在临界区执行时,其他申请进入临界区的进程应选择一个进入临界区。有限等待 bounded waiting:
任何在进入区等待进入临界区的进程都应在有限时间内能够进入临界区,即进程不会在进入区饿死。
信号量 semaphore:
内核定义的一种特殊数据结构,其表现值的数据类型为整型,用于解决进程同步的问题。忙等待 busy-waiting:
当一个进程位于其临界区内时,其他试图进入临界区的进程都必须在进入区内连续空循环。饥饿 starvation:
又称饿死或无限期阻塞,进程在信号量内有可能可以前进,但是却无穷等待的情况。管程 monitor:
一个管程定义了一个数据结构以及能为并发进程所调用的一组操作,这组操作能同步进程和改变管程中的数据。
互斥 mutual exclusion:
如果一个进程占有r资源,其他进程申请该资源时申请进程必须等待直到该资源释放为止。
占有等待hold and wait:
一个进程必须占有至少一个资源,并在等待着另外的资源,而被等待资源则被其他进程所占有。
非抢占 non-preemption:
当一个进程拥有r资源时,其他进程不能抢占该进程的r资源。
循环等待circular wait:
一组进程{p0,p1…pn},p0等待的p1的资源,p1等待p2的资源……pn等待p0的资源。安全状态 safe state:
如果资源申请分配存在一个安全序列,那么系统处于安全状态。
安全序列 safe queue:
系统能按某个顺序为每个进程分配资源(不超过其最大值)并能避免死锁,那么该顺序为一个安全序列。
地址捆绑 address binding:
由一个地址空间向另一个地址空间的映射。
页表 page table:
页表相当于一个逻辑地址空间与物理地址空间的映射表,包含每一页的物理地址的基地址。内存管理单元 mmu:
它是cpu中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
内部碎片 internal fragmentation:
当一个进程装入到固定大小的分割块(比如页)时,假如进程小于分割块,则剩余的空间将无法被系统使用,称为内部碎片。
外部碎片 external fragmentation:
因为进程持续地被装入和替换,使得可用的内存空间被分割成许多不连续的区块。这些不连续区块之间产生的零碎的内存剩余空间则称外部碎片。
旁路转换缓冲 tlb:
又称页表缓冲,由于查询存储在内存的页表付出的代价很大,由此产生了tlb。其功能作用类似cache,但里面存放的内容是页表。
虚拟内存 virtual memory:
用户视角认为虚拟内存是一个巨大连续的可用内存,而实际上虚拟内存是利用硬盘的一个存储空间与主存不停地进行交换而实现的。虚拟内存将用户逻辑内存和物理内存分开,用户也不再受内存存储的限制。
页错误 page faults:
当进程试图访问那些尚未调入到内存的页时,这种标记为无效的访问会产生页错误中断。写时拷贝 copy-on-writing:
如果任何一个进程需要对共享页进行写操作,那么就创建一个共享页的拷贝,进程则修改创建出来的拷贝页。
系统颠簸 thrashing:
当一个进程在换页上用的时间要多于执行时间,也即页调度过于频繁,那么这个进程就在颠簸。
文件 file:
记录在外存上相关信息的具有名称的集合,是逻辑外存的最小分配单元,可存储不同类型的数据信息。
文件重定向 file reposition:
又称文件寻址,高速缓存 cache:
高速缓存是为了解决cpu与主存存取速度不匹配的问题而出现的,是除寄存器外目前速度最快的存储器,在cpu与主存之间充当缓冲区的作用。
引导 bootstrap:
指使用一个很小的程序(引导程序)将某个特定的程序(通常是指操作系统)装入内存中。引导块 boot block:
引导块位于文件卷最开始的第一扇区,为根文件系统所特有,用于将操作系统的启动程序装入内存中。
虚拟文件系统 vfs:
虚拟文件系统(vfs)是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口,它将文件系统通用操作和具体实现分开。
轮询 polling:
主机在不断循环中不断读取状态寄存器直到忙位被清除。
内存映射i/ommio:
它是pci规范的一部分,i/o设备控制寄存器映射到cpu的地址空间。从处理器的角度看,内存映射i/o后访问系统i/o设备和访问内存一样
操作系统概念总结篇三
什么是os,os有哪几个特征?其最基本的特征是什么?
答:操作系统是为了达到方便用户和提高利用率的目的而设计的,控制和管理计算机硬件和软件资源,合理的组织计算机工作流程的程序的集合它具有并发,共享,虚拟,异步性四个基本特征。其中最基本的特征为并发性
2什么是进程及与程序的区别与联系,为什么pcb是进程存在的唯一标志?
进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。
区别:(1)进程是动态的,程序是静态的。(2)进程具有并发性,而程序没有(3)进程是资源分配和处理机调度的独立单位,其并发性受系统制约(4)一个程序多次执行,对应多个进程,不同的进程可以包含同一程序pcb:因为在进程的整个生命期中,系统总是通过pcb对进程进行控制的3处理机三级调度分别完成什么工作?
(1)高级调度:就是作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行
(2)低级调度:就是进程调度,它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作
(3)中级调度:实际上就是存储器管理中的对换功能试说明引起进程调度的时机是什么?
(1)进程完毕(2)时间片用完(3)i/o请求发生某个事件(4)原语:wait操作,阻塞(5)高优先者进入 5什么是临界资源和临界区?
一次仅允许一个进程访问的资源称为临界资源。访问临界资源的代码段称为临街区
6试修改下面生产者---消费问题中,如果将两个wait操作即wait(full)和wati(mutex)互换 位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?
(1)wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full 也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0 而进行等待,使full 始终为0,这样就形成了死锁.(2)而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的.7什么是死锁?死锁产生的有哪些
死锁是因多个进程因竞争资源而造成的一种僵局(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)环路等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。同步机制应遵循的基本准则是什么?
(1)空闲让进(2)忙则等待(3)有限等待(4)让权等待.程序有几种连接方式
(1)静态链接方式(2)装入时动态链接(3)运行时动态链接
10什么是动态重定位方式及为什么要引入动态重定位方式及如何实现?
程序和数据装入内存时需对目标程序中的地址进行修改。这种把逻辑地址转变为内存的物理地址的过程叫重定位
11什么是分页,什么是分段,在存储管理中两者的区别
(1)分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面,内存划分成与页面大小相等的物理块,进程的任何一页可放入内存的任何一个物理块中,段是信息的逻辑单位,含有一组意义相对完整的信息,更好的来满足用户的需要。
(2)分段是一组逻辑信息的集合,即一个作业中相对独立的部分。多个段在内存中占有离
散的内存单元,对每个段,在内存占有一连续的内存空间,其内存的分配与回收同可变分区的内存分配与回收办法
分页与分段的主要区别是?
(1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率(2)页的大小固定,并且有系统决定,而段的长度不固定决定于用户所编写的程序(3)分页作业的地址空间是一维的,段是二维的。
12动态分区存储管理中内存的回收方式
13.什么是对换,对换的分类及主要用途在进程换出时应遵循什么原则
对换是把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把因具备运行条件的进程或者进程所需要的程序或数据调入内存。
分类:(1)整体对换(进程对换):以整个进程为单位(2)页面对换(分段对换/部分对换):以页和段为单位
规则:内存空间不够用才换出。系统处于阻塞状态,且优先级最低的进程最先换出。若换入:系统处于就绪状态,且优先级最高的进程最先换入,直至无可换入的进程为止。
14.什么是虚拟存储器虚拟存储器具有哪些特性,最基本的特性是什么?虚拟存储器的容量受哪两方面的限制?
虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
特征:(1)离散性(最基本的特征)(2)多次性(3)对换性(4)虚拟性
虚拟存储器的容量主要受指令中表示地址的字长和外存的容量的限制。
15.在没有快表的分页存储管理中取一条指令需访问几次内存及访问内存的目的,及具有快表的分页存储管理系统的地址变换过程。
两次。第一次:访问内存中的页表,从中找到页的物理块号,再将块号与页内偏移量w拼接,形成物理地址。第二次:从第一次所得的物理地址中获得所需数据
地址变换过程:cpu给出有效地址后,地址变换机构将页号与快表中的所有页号进行比较,若有与此相匹配的页号,则表示所访问的页在快表中,从中读出物理块号与页内地址相拼接,得到物理地址;若访问的页不在快表中,则要访问在内存中的页表,从页表中读出物理块号与页内地址相拼接,得到物理地址,同时,还应将此页表项写入快表中,若此时快表已满,则os必须找到一个老的并且被认为不再需要的页表项将它换出。
16.什么是紧凑技术及为什么要引入
紧凑:把原来多个分散的小分区拼接成一个大分区的方法
引入:提高内存的利用率,让大容量的作业可以装入并且减少零头或碎片
17程序的局部性原理是什么局限性的两个主要表现方面
局部性原理:(1)程序执行时,除少部分转移和过程调用指令外,大多数条件下任是顺序执行的(2)过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经验就看出过程调用的深度在大多数情况下不会超过5(3)程序中存在许多循环结构,这些虽然只能由少数指令构成但它们将多次执行(4)程序中还包括许多对数据结构的处理
主要表现在:(1)时间局限性(2)空间局限性
18.什么是spooling技术spooling系统有哪些组成spooling技术是对脱机输入,输出系统的模拟。
组成:(1)输入井和输出井(2)输出缓冲区和输入缓冲区(3)输入进程spi和输出进程spo(4)请求打印队列
特点:(1)提高了i/o的速度(2)将独占设备改为共享设备(3)实现了虚拟设备功能
操作系统概念总结篇四
第一章 操作系统概论
第一章主要内容
各节基本概念,操作系统的发展过程,操作系统的基本特征。
操作系统的目标
1.有效性
2、方便性
3、可扩充性4.开放性
分时系统实现中的关键问题
(1)及时接收(2)及时处理
主要特征1.多路性2.独占性3.及时性4.交互性
实时操作系统按其用途的不同可分为两种类型:实时控制系统和实时信息处理系统 3.实时系统与分时系统特征的比较
(1)多路性。实时信息处理系统也按分时原则为多个终端用户服务。实时控制系统的多路性则主要表现在系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。而分时系统中的多路性则与用户情况有关,时多时少。
(2)独立性。实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;而实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰。(3)及时性。实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
(4)交互性。实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源共享等服务。(5)可靠性。分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。
操作系统的特征
(1)共享性
从资源使用的角度来讲,所谓共享性是指操作系统程序与多个用户程序共同使用系统中的各种资源。
互斥共享方式 同时访问方式
(2)虚拟性
指把一个物理上的实体,变为若干个逻辑上的对应物。前者是实际存在的;而后者是虚的,只是用户的一种感觉。
时分复用:虚拟处理机
空分复用:虚拟磁盘、虚拟i/o设备、虚拟存储器
(3)并发性:
是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指宏观上在一段时间内有多道程序在同时运行。但在单处理机系统中,每一时刻仅能执行一道程序,故微观上这些程序是在处理机上交替执行。
• • • 与并行的区别 进程 线程
(4)异步性(不确定性)
指在多道程序环境下,程序以异步方式执行。即每道程序在何时执行、各自执行的顺序、完成每道程序所需要的时间都是不确定的,也是不可预知的。
并发 和 共享 是操作系统的两个最基本的特征。5 大管理功能 1.处理机管理
(1)进程控制
2.存储管理
(1)内存分配
3.设备管理
(1)设备分配
4.文件管理(软件资源管理)
(1)文件存储空间的管理
5.作业管理(用户接口)
(1)命令接口提供一组命令供用户直接或间接控制自己的作业;
(2)程序接口提供一组系统调用供用户应用程序和其他系统程序调用操作系统的功能。
(2)目录管理
(3)文件保护
(4)文件操作管理
(2)设备处理
(3)缓冲管理
(2)存储保护
(3)存储扩充
(4)地址映射
(2)进程调度
(3)进程同步
(4)进程通信
总结:
计算机操作系统是方便用户使用,管理和控制计算机软硬件资源的系统软件。
目前操作系统有六大类型:批处理系统、分时系统、实时系统、单用户系统、网络系统和分布式系统。
五大管理功能:处理机管理、存储管理、设备管理、文件管理和作业管理(用户接口)。
四大特性:并发性、共享性、虚拟性和异步性。
操作系统的最主要设计目标有两个:
1)向用户提供方便、简单的使用计算机的环境;
2)使计算机系统能高效地工作,提高系统资源的利用
第二章主要内容(重点)
2.1 进程的基本概念 2.2 进程控制 2.3 进程同步
2.4 经典进程的同步问题
以上各节讲过的内容,重点是进程的基本状态及转换、信号量的原理和应用、进程同步和互斥。
第二章 进程管理
4.2.1 程序的装入
1.绝对装入方式(absolute loading mode)
从r开始
2.可重定位装入方式(relocation loading mode)
从0开始
3.动态运行时装入方式(denamle run-time loading)重定位不在装入内存时进行,在真正执行程序时执行
4.2.2 程序的链接
1.静态链接方式(static linking)
2.装入时动态链接(load-time dynamic linking)
装入时动态链接方式有以下优点:(1)便于修改和更新。(2)便于实现对目标模块的共享。
3.运行时动态链接(run-time dynamic linking)4.3 连续分配方式 4.3.1 单一连续分配
单用户、单任务
• • • 存在内碎片问题
优点:易于实现,开销小。缺点:
– –
• • • • • 内碎片造成浪费
分区总数固定,限制了并发执行的程序数目。4.3.2
固定分区分配
可以和覆盖、交换技术配合使用。
采用的数据结构:分区表--记录分区的大小和使用情况
动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。优点:没有内碎片。缺点:有外碎片。4.3.3 动态分区(dynamic partitioning)
1.分区分配中的数据结构
(1)空闲分区表(2)
空闲分区链。2.分区分配算法
(1)首次适应算法(first fit)
(2)循环首次适应算法(next fit),该算法是由首次适应算法演变而成的。从上次分配的分区起查找
(3)最佳适应算法(best fit)。(4)最坏适应算法(worst fit)
(5)快速适应算法(quick fit)根据其容量大小进行分类
• 分区分配算法:寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区的先后次序通常是从内存低端到高端。• 分区释放算法:需要将相邻的空闲分区合并成一个空闲分区。(这时要解决的问题是:合并条件的判断和合并时机的选择)
内存回收时的情况
4.3.6 可重定位分区分配 1.动态重定位的引入
• • • 紧缩(或拼凑)可重定位分区法
紧缩时机
1释放所占分区时
2分配进程分区时
4.3.7 对换(swapping)
3.进程的换出与换入
阻塞状态且优先级最低
换出时间(换出到磁盘上)最久的进程
4.4.3 两级和多级页表
4.5.2 分段系统的基本原理
段号 段内地址
例子
段式存储管理中供用户使用的逻辑地址为24位,其中段内地址占用16位 用户程序最多可以分为多少段?2^8
当把用户程序装入内存时,每段占用内存的最大连续区为多少字节?2^16
4.6 虚拟存储器的基本概念
4.6.1 虚拟存储器的引入
1.常规存储器管理方式的特征
(1)一次性。(2)驻留性。
2.虚拟内存可行性基础:局部性原理
3.虚拟存储器定义
:请求调入功能和置换功能
4.6.2 虚拟存储器的实现方法
1.分页请求系统
(1)硬件支持
① 请求分页的页表机制 ② 缺页中断机构
(2)实现请求分页的软件 4.6.3 虚拟存储器的特征
多次性
对换性 虚拟性 离散性
③ 地址变换机构
最本质的特征:离散性;最重要的特征:虚拟性。
2.缺页中断机构
4.7.2 内存分配策略和分配算法
1.最小物理块数的确定
2.物理块的分配策略
内存分配策略--即固定和可变分配策略。置换--即全局置换和局部置换。
1)固定分配局部置换(fixed allocation, local replacement)
2)可变分配全局置换(variable allocation, global replacement)
3)可变分配局部置换(variable allocation, local replacemen 3.物理块分配算法
1)平均分配算法
2)按比例分配算法
物理块数b=(s/s)*m
m为物理块总数 s页面数 3)考虑优先权的分配算法 4.8 页面置换算法
1.最佳置换算法(optimal replacement, opt):将来不被使用,或者是在最远的将来才被访问
2.先进先出(fifo)页面置换算法:总是淘汰在内存中停留时间最长(年龄最老)的一页
• • 优点:容易理解,方便程序设计。缺点:
●性能并不很好,效率不高
●存在belady异常现象,即缺页率随内存块增加而增加
4.8.2 最近最久未使用(lru)置换算法:最近一段时间里最久没有使用过的页面予以淘汰。
lru置换算法的硬件支持
47071******074112074
221074662107
1)寄存器
2)特殊栈
4.8.3 clock置换算法
2.改进型clock置换算法
由访问位a和修改位m可以组合成下面四种类型的页面:
1类(a=0, m=0):表示该页最近既未被访问,又未被修改,是最佳淘汰页。
2类(a=0, m=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。
3类(a=1, m=0):最近已被访问,但未被修改,该页有可能再被访问。
4类(a=1, m=1): 最近已被访问且被修改,该页可能再被访问。
其执行过程可分成以下三步
(1)从指针所指示的当前位置开始,扫描循环队列,寻找a=0且m=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位a。
(2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找a=0且m=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描过的页面的访问位都置0。
(3)如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页。
4.8.4 其它置换算法
1.最少使用(lfu: least frequently used)置换算法
选择在最近时期使用最少的页面作为淘汰页。
2.页面缓冲算法(pba: page buffering algorithm)两个链表:空闲链表、已修改页面的链表 4.9 请求分段存储管理方式 4.9.1 请求分段中的硬件支持
1.段表机制2.缺段中断机构3.地址变换机构
4.9.2 分段的共享与保护
1.共享段表
2.共享段的分配与回收 :对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区始址填入段表把count置为1 1)共享段的分配
2)共享段的回收:count∶=count-1 3.分段保护
1)越界检查
2)存取控制检查
• • •
• • • 只读
只执行
读/写
3)环保护机构
一个程序可以访问驻留在相同环或较低特权环中的数据。
一个程序可以调用驻留在相同环或较高特权环中的服务。
5.6.2 磁盘调度
1.先来先服务(fcfs)
2.最短寻道时间优先(sstf):
每次的寻道时间最短
(从100#磁道开始,向磁道号增加方向访问)被访问的下 移动距离 一个磁道号(磁道数)150 50 160 10 184 24 90 94 58 32 55 3 39 16 38 1 18 20平均寻道长度:27.8(从100#磁道开始,向磁道号增加方向访问)被访问的下 移动距离 一个磁道号(磁道数)150 50 160 10 184 24 18 166 38 20 39 1 55 16 58 3 90 32平均寻道长度: 35.8
4.循环扫描(cscan)算法:cscan算法规定磁头单向移动
第六章主要内容
6.1 文件和文件系统 6.2 文件的逻辑结构 6.3 外存分配方式 6.4 目录管理
6.5 文件存储空间的管理
以上各节讲过的内容,重点是文件的逻辑结构、物理结构、目录管理、存储空间管理的方法 6.1 文件与文件系统
文件说明1)文件类型。2)文件长度。3)文件的位置。4)文件的存取控制。5)文件的建立时间
文件的分类
按文件用途:1.系统文件 2.用户文件 3.库文件 按数据形式:1.源文件 2.目标文件 3.可执行文件 按操作保护:1.只读文件 2.读写文件3.执行文件 按文件性质:1.普通文件 2.目录文件 3.特殊文件
4、文件的操作(文件接口)
(1)创建文件。(2)删除文件。(3)打开文件(4)读文件(5)写文件(6)关闭文件 文件的逻辑结构:用户关心:文件内容或记录 1.有结构的文件(记录型文件)
定长记录型
变长记录型 2.无结构文件(流式文件)
文件的物理结构:系统关心:文件存储、提取 1.连续文件2.链接文件3.索引文件
记录星文件的组织方式:1.顺序文件 2 索引文件 3.索引顺序文件
1、顺序文件
1)分:串结构、顺序结构
2)读/写操作
3)优
适合批量存取
缺点
不适合交互应用,记录的删改
2、索引文件
优:速度缺:存储空间
3、索引顺序文件
1)读/写操作
2)优点:折中
比较检索效率 记录个数n 顺序文件n/2 索引顺序文件 根号2
6.3.3 fat和ntfs技术
计算以盘块为分配单位时,所允许的最大磁盘容量。
一个fat表所能描述的最大容量=最多允许表项数*盘块大小 最大磁盘容量 =一个fat表所能描述的最大容量*卷的个数
=最多允许表项数*盘块大小*卷的个数 故:fat12 最大磁盘容量=212*29*4=8*220(8m)
引入一个新的分配单位——簇
问题:造成簇内零头
6.4 文件目录
文件目录项(fcb):一般情形下包括三类信息:1)基本信息2)存取控制信息3)使用信息类
目录结构 单级目录结构
缺点:(1)查找速度慢。(2)不允许重名。(3)不便于实现文件共享。
二级目录结构优点:
(1)提高了检索目录的速度。
(2)在不同的用户目录中,可以使用相同的文件名。(3)不同用户还可使用不同的文件名来访问系统中的 同一个共享文件
多级目录结构
1)树型目录结构2)路径名
3)当前目录(current directory)1.相对路径名(relative path name)2.绝对路径名(absolute path name)从根开始 6.4.3 目录查询技术 1.线性检索法
线性检索法又称为顺序检索法。
根目录结点6是132号盘块是/usr的目录/usr的目录
1·6·
1· ·1· ·
bin 419dick 7dev132 30erik14lib
51jimetc 9 626astusr
tmp45bal 8 在结点6中查找usr字段
2.hash方法
结点26是/usr/ast的目录496号盘块是/usr/ast的目录26664·· ·grantsbooksmboxminiksrc49692608117对于使用了通配符的文件名,系统便无法利用hash方法检索目录。
在进行文件名的转换时,有可能把n个不同的文件名转换为相同的hash值,即出现了所谓的“冲突”。
6.5.1空闲表法和空闲链表法
1.空闲表法
空闲表法属于连续分配方式
2、空闲块(区)链
空闲链表法是将所有空闲盘区拉成一条空闲链
6.5.2.位示图
对应物理块:b=n*i+j(1,7)→16*1+7=23 6.5.3.成组链接法
操作系统概念总结篇五
操作系统基本基础概念
多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务。像windows、linux就是支持多任务的操作系统。每个任务使用由操作系统分配的短暂的时间片(timeslice)轮流使用cpu,由于cpu对每个时间片的处理速度非常快,在用户看来好像这些任务在同时执行,这叫做时间片轮转调度法。还有更多的多任务调度方法。
实时系统
(real time system)是指系统能及时的响应外部时间的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。分为硬实时任务和软实时任务,系统对任务的截止时间有要求否则会出现难以预测的结果,这就是硬实时任务,反之要求不是很严格则为软实时任务。
操作系统的基本特性
并发与并行:并发性是两个或多个事件在同一时刻发生。而并行性是两个或多个事件在同一时间间隔内发生。
进程:为了使多个程序能并发的执行,系统必须为每个程序建立进程(process)。简单说来~进程是指在操作系统中能独立运行并作为资源分配的基本单位。他是由一组机器指令数据、堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发的执行和交换信息。一个进程在运行时需要一定的资源,如cpu、内存空间、io设备等。
我的注解:进程很重要。linux的进程之间的关系可以这样描述:一个完整的main函数运行的时候,在linux里是以进程的形式存在的。系统启动之后运行的第一个进程的进程号是1,叫做init进程,一切进程都从它派生出来,一个父进程可以派生另一个进程,即为子进程,这俩进程为并行关系。子进程也可以创建子进程。
进程的创建在linux里边用fork()函数它有两个返回值,一个是在父进程中返回,返回的是子进程号,一个是在子进程中返回,如果子进程创建成功,则返回的是0。子进程是父进程的一个拷贝,现代的进程创建都用vfork()创建子进程之后,并不拷贝全部的进程空间,只有在用到时才拷贝,叫做写时复制技术(copy on write)。
linux里边这样创建子进程:
pid_t pid=fork();//这里的pid_t是一种数据类型(如int),这里代表进程号(实质上也是个整形变量int)
if(pid==0){这里边就是子进程代码}
else if(pid>0){这里边是父进程代码,pid的值是子进程的进程号pid}
线程:通常在一个进程中可以包含若干个线程,他们可以利用进程所拥有的资源。在引入线程的操作系统中,一般都把进程作为分配资源的基本单位。而把线程作为独立运行和独立调度的基本单位。优点:运行效率更高。
进程的状态:一般分为就绪状态。执行状态。阻塞状态。
操作系统产生死锁的原因:1.竞争资源。2.进程间推进顺序非法。比如说:一个进程占有一个资源a,当他运行到需要用到被另一个进程占用的资源b时,没有得到,于是进入等待退出运行,而这个占有资源b的进程还想得到资源a,但是占有a的进程此刻在休眠,也没得到,所以这个进程也进入等待退出运行。这样两两相互等待造成了死锁。解决方法:1.在进程运行开始时就把所有资源占好。2.按顺序加锁。比如要得到资源b首先要对a加锁,如果得不到就不能加锁。所有进程都按照这个方法进行。