
操作系统
文章平均质量分 92
天問*
青天星溅寰宇,戌土不落清渠
展开
-
操作系统——大容量存储结构
磁盘高速缓存使用的置换算法常为LRU,即将高速缓存中所有盘块数据拉成一条LRU链,将会严重影响到数据一致性的和很久都不会再使用的盘块放入LRU链的头部,使它们能够优先写回磁盘;磁盘设备是以一种逻辑块的一维大数组的形式编址的,逻辑块是传输的最小单位,逻辑块的一维数组映射到磁盘上一些相连的扇区。控制器维护磁盘上的坏块列表,该列表在工厂的物理格式化(留出操作系统不可见的备用扇区)过程中初始化,并在磁盘的生命周期内更新。事实上,可移动磁盘的速度几乎与硬盘一样快,但由于可移动磁盘暴露在外,其损坏的风险更大。原创 2024-12-07 23:00:27 · 984 阅读 · 0 评论 -
操作系统——I/O系统
通道可以执行通道程序,建立独立的I/O操作,不仅使数据的传送独立于CPU,而且使有关对I/O操作的组织、管理及其结束处理也尽量独立,即把CPU从繁杂的I/O任务中解放出来,提高CPU与设备,设备与设备之间的并行工作能力。例如当CPU要完成一组相关的I/O操作及有关控制时,只需向I/O通道发出一条I/O指令,并给出通道程序的首地址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可自动完成CPU指定的I/O任务。它还是CPU与I/O设备间的接口,它接收从CPU发来的命令,并去控制I/O设备工作。原创 2024-12-07 14:00:43 · 983 阅读 · 0 评论 -
操作系统——文件系统
将顺序文件中的所有记录分为若干个组,再为顺序文件建立一张索引表,表中记录每个组的第一个记录,该索引项包含记录的键值和指向该记录的指针。连续分配是最简单的物理文件结构,它将逻辑上连续的文件信息依次存放在外存连续的物理块中,每一个文件占用一个连续的磁盘块的集合。按照用途分类——系统文件(系统软件构成的文件,大多数系统文件只允许用户调用而不允许修改)、库文件(系统提供给用户使用的各种标准子程序库,这类文件允许用户调用,而不允许修改)、用户文件(用户委托文件系统保存的文件,如源程序、原始数据等)。原创 2024-12-06 21:02:13 · 2652 阅读 · 0 评论 -
操作系统——虚拟内存管理
理想情况下,进程的工作集都应当处于TLB,否则进程的时间成本将大量增加。为各个进程分配帧的重要因素是页面置换,由于多个进程竞争帧,页面置换算法被分为全局置换(一个进程从所有帧的集合中选择一个置换帧,而不管该帧是否已分配给其他进程)和局部置换(每个进程只从它自己被分配的帧中进行选择)两类。页面置换算法需要一个最小的缺页率,它通过运行一个内存访问的特殊序列(访问序列),计算这个序列的缺页次数,具体将哪个页面调出需要根据页面置换算法来确定,算法好坏将直接影响系统的性能,不适当的算法可能会导致进程发生抖动。原创 2024-12-06 20:51:26 · 968 阅读 · 0 评论 -
操作系统——内存管理策略
解决方法是采用两层分页算法,即将页表再分页,具体过程是:每个页面大小与内存物理块大小相同,并为它们进行编号,可以离散地将各个页面分别存放在不同物理块中,为此再建立一张页表,称为外层页表(页表目录),即第一级页表,其中的每个表目是存放某个页表的物理地址。若有,则可分配给新进程。交换时间的主要部分是转移时间,总的转移时间直接同交换的内存的数量成比例,例如用户进程大小为100MB,并且备份存储是传输速度为50MB/s的标准硬盘,则100MB进程传入或传出内存的时间为2s,总交换时间为4s(忽略磁盘性能问题)。原创 2024-12-04 15:08:22 · 718 阅读 · 0 评论 -
操作系统——死锁
当一个进程申请资源时,必须保证它没有占有其他资源,比如要求进程在执行前一次性申请全部资源,且系统只能在没有资源时申请资源,需要申请其它资源必须先释放已占有资源。当进程申请一组资源时,系统应确定这些资源的分配是否能够使系统处于安全状态,若能则分配资源,若不能则进程应等待,直至其他进程释放足够多的资源。事先声明系统资源的需求,当进程申请资源时,需求边转化为申请边;多道程序环境中,多个进程竞争有限数量的资源,若一个进程所申请的资源被其他等待进程占有,则这些等待进程可能再也无法改变状态,产生了死锁。原创 2024-12-02 16:02:29 · 915 阅读 · 0 评论 -
操作系统——同步
互斥算法是平等进程间的一种协商机制,需要一个地位高于进程的管理者来解决公有资源的使用问题,操作系统可从进程管理者的角度来处理互斥问题,而信号量就是操作系统提供的管理公有资源的有效手段。由此引出入口等待队列,当一个进程试图进入一个已被占用的管程时,它应在管程的入口处等待,即入口等待队列,亦称作进程等待队列。只要盘子空,则爸爸可向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出,请给出三人之间的同步关系,并用P、V操作实现三人正确活动的程序。当一个进程请求获取不可用的锁时,进程阻塞直至锁被释放。原创 2024-11-15 21:52:31 · 1158 阅读 · 0 评论 -
操作系统——进程调度
多级队列调度的原则是将就绪队列根据内存大小、进程优先级、进程类型等进程属性分成多个单独队列,每个队列采用各自的调度算法,例如将一个就绪队列分成前台进程队列和后台进程队列,前台进程队列采用RR调度算法,后台进程队列采用FCFS调度算法。实现是完全精确的调度算法评价方法。当进程从一个CPU迁移到另外一个CPU时,其高速缓存的内容也必须随之更新,这种重新填充提高了系统代价,使得多数对称多处理系统不支持进程在不同CPU间迁移,而是试图让进程始终在同一个CPU上运行,即一个进程对其运行的处理器具有亲和性。原创 2024-11-14 12:58:32 · 894 阅读 · 0 评论 -
操作系统——多线程编程
一个用户线程映像一个内核线程,这提供良好的并发性,保证了一个用户线程发起系统调用而阻塞时其他线程能够正常运行,但是每创建一个用户线程都需创建一个相应的内核线程,造成了额外开销,所以许多系统会限制应用中的线程数目。用户线程不依赖于内核,应用进程利用线程库提供的创建、同步、调度和管理线程的函数来控制用户线程,调度在应用软件内部进行,通常采用非抢占式的简单规则,也无需用户态/管态切换,运行速度快。2)引入线程,创建多线程的进程,进程中的一个线程监听客户请求,接收到请求时该进程创建一个线程以处理请求。原创 2024-10-02 18:32:00 · 970 阅读 · 0 评论 -
操作系统——进程
因为fork会将调用进程的所有内容原封不动地拷贝到新创建的子进程中去,而如果之后马上调用exec,这些拷贝的东西又会马上抹掉,非常不划算,于是设计了一种叫作”写时拷贝”的技术,使得fork结束后并不马上复制父进程的内容,而是到了真正要用的时候才复制。协作进程则能影响其他进程,受其他进程影响,并与其他进程共享数据资源,它既从输入读数据又向输出写数据。它创建的子进程是父进程的复制品,即进程映像,除了进程标识数以及与进程特性有关的一些参数外,其他都与父进程相同,与父进程共享打开的文件,并都受进程调度程序的调度。原创 2024-10-01 22:38:27 · 839 阅读 · 0 评论 -
操作系统——操作系统结构
例如Linux和Solaris内核都是单片化和模块化的,这既使得单一地址空间的操作系统可以提供高效性能,又使得新的功能可以动态加载到内核,而Windows主要是单片化的,还拥有支持不同子系统的微内核,苹果Mac OS X则混合了分层、Cocoa编程环境等方法。3)基于客户/服务器体系结构,微内核引入了任务间通信机制——消息机制,这是系统的基础,操作系统应具备的各种功能都以服务器方式实现,用户对服务器的请求是以消息传递的方式传给服务器的。考虑模块化,层的选择是每层只使用低层次的功能和服务。原创 2024-09-26 01:05:02 · 611 阅读 · 0 评论 -
操作系统——计算机系统结构
中断逻辑:不同的代码段决定每种类型的中断应采取何种操作,有一个通用的例行程序来检查中断信息,然后调用特定的处理程序,也能通过中断向量表,该表包含所有服务例行程序的地址。所有的I/O指令都是特权指令,用户不能直接用I/O指令,而是必须通过系统调用,这确保用户程序不能在管态下控制计算机。程序员需要保护磁盘上的文件和数据,当遭遇非法指令,访问不属于自己的地址空间的内存,进程终止时硬件陷入到操作系统。辅助存储是主存的扩展,提供了非易失的足够大的存储容量,通常为磁盘等覆盖了磁记录材料的硬金属或玻璃盘片。原创 2024-09-23 11:37:02 · 969 阅读 · 0 评论 -
操作系统——导论
计算机硬件只能识别0、1机器码,直观性差,用户难以使用,因而在计算机硬件上覆盖一层管理计算机硬件、方便用户使用的系统软件尤为重要。我们把操作系统定义为用以控制和管理计算机系统资源方便用户使用的程序和数据结构的集合。用户角度,操作系统是侍者;系统角度,操作系统是管家;如果说,CPU是计算机硬件的核心,是计算机系统的心脏,那么操作系统则是计算机软件的核心,是计算机系统的大脑,在计算机用户和计算机硬件之间起媒介作用。计算机系统部件硬件——提供基本的运算资源。原创 2024-09-22 15:24:37 · 918 阅读 · 0 评论