操作系统学习
文章平均质量分 64
qing_ti_xx
千里之行始于足下
展开
-
第五章 I/O管理 十三、固态硬盘SSD
要写的页如果有数据,则不能写入,需要将块内其他页全部复制到一个新的(擦除过的)块中,再写入新的页。3、SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数太多而坏掉。多个闪存芯片(Flash Chip)——每个芯片包含多个块(block)——每个块包含多个页(page)SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的存储任务,让较新的闪存块承担更多的写任务。2、以块(block)为单位"擦除",擦干净的块,其中的每页都可以写一次,读无限次。原创 2023-11-02 05:30:00 · 238 阅读 · 0 评论 -
第五章 I/O管理 十二、磁盘的管理
坏了、无法正常使用的扇区就是“坏块”。这属于硬件故障,操作系统是无法修复的。应该将坏块标记出来,以免错误地使用到它。原创 2023-11-02 05:00:00 · 276 阅读 · 0 评论 -
第五章 I/O管理 十一、减少磁盘延迟时间的方法
若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。原创 2023-11-01 21:36:39 · 180 阅读 · 0 评论 -
第五章 I/O管理 十、磁盘调度算法(FCFS、SSTF、SCAN、C-SCAN、C-LOOK)
根据进程请求访问磁盘的先后顺序进行调度。SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。(其实就是贪心算法的思想,只是选择眼前最优,但是总体未必最优)SSTF算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。为了防止这个问题,可以规定,只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。原创 2023-11-01 21:12:24 · 3715 阅读 · 0 评论 -
第五章 I/O管理 九、磁盘的结构
磁盘的物理地址指的是磁盘上每个扇区的唯一标识符,通常使用柱面号、磁头号和扇区号组成。磁盘中的每个柱面(Cylinder)是一个垂直于盘面的圆筒,每个盘面上都有若干个柱面。柱面号表示扇区所在圆柱的编号,磁头号表示扇区所在磁头的编号,而扇区号表示在柱面上的扇区编号。这三个地址相结合,就形成了唯一的物理地址,从而可以准确定位到磁盘上某个特定的扇区。原创 2023-11-01 05:00:00 · 255 阅读 · 0 评论 -
第五章 I/O管理 八、缓冲区管理
缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)一般情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区假设某用户进程请求某种块设备读入若干块的数据。原创 2023-10-31 21:29:06 · 140 阅读 · 0 评论 -
第五章 I/O管理 七、设备的分配与回收
(1)独占设备―—一个时段只能分配给一个进程(如打印机)(2)共享设备――可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。(3)虚拟设备――采用SPOOLing 技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用SPOOLing技术实现的共享打印机)先来先服务,优先级高者优先,短任务优先为进程分配一个设备后就将进程阻塞,本次I/O完成后才将进程唤醒。(eg:考虑进程请求打印机打印输出的例子)一个时段内每个进程只能使用一个设备破坏了“请求和保持”条件原创 2023-10-31 20:49:35 · 161 阅读 · 0 评论 -
第五章 I/O管理 六、I/O核心子系统
用某种算法确定一个好的顺序来处理各个I/O请求。原创 2023-10-31 05:30:00 · 284 阅读 · 0 评论 -
第五章 I/O管理 五、输入/输出应用程序接口&设备驱动程序接口
应用程序发出I/O系统调用,系统调用可迅速返回,进程无需阻塞等待。应用程序发出I/O系统调用,进程需转为阻塞态等待。以前的统一接口不适用了,现在改为了几种不同的接口。eg:字符设备接口―一从键盘读一个字符get。eg:块设备接口――往磁盘写数据write。原创 2023-10-31 05:00:00 · 256 阅读 · 0 评论 -
第五章 I/O管理 四、I/O软件的层次结构
设备驱动程序和中断处理程序直接和硬件打交道。原创 2023-10-30 20:29:48 · 224 阅读 · 0 评论 -
第五章 I/O管理 三、I/O控制方式(程序直接控制、中断驱动方式、DMA方式、通道控制方式)
引入中断机制。由于I/O设备速度很慢,因此在CPU发出读/写命令后,可将等待l/O的进程阻塞,先切换到别的进程执行。当I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存。接着,CPU恢复等待I/O的进程((或其他进程)的运行环境,然后继续执行。①CPU会在每个指令周期的末尾检查中断;②中断处理过程中需要保存。原创 2023-10-30 20:06:53 · 372 阅读 · 0 评论 -
第五章 I/O管理 二、I/O控制器
如CPU发来的read/write命令,I/O控制器中会有相应的控制寄存器来存放命令和参数。 I/o控制器中会有相应的状态寄存器,用于记录I/o设备的当前状态。如:1表示空闲,0表示忙碌。I/O控制器中会设置相应的数据寄存器。输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备。输入时,数据寄存器用于暂存设备发来的数据,之后CPU从数据寄存器中取走数据。类似于内存的地址,为了区分设备控制器中的各个寄存器,也需要给各个寄存器设置一个特定的“地址”。I/O控制器通过CPU提供的“地址”来判断CP原创 2023-10-29 20:19:28 · 134 阅读 · 0 评论 -
第五章 I/O管理 一、I/O设备的基本概念和分类
I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。原创 2023-10-29 19:56:21 · 153 阅读 · 0 评论 -
第四章 文件管理 十一、虚拟文件系统
2、VFS要求下层的文件系统必须实现某些规定的函数功能,如: open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求。3、每打开一个文件,VFS就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件存储在哪个文件系统。1、向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异。不同的文件系统,表示文件数据结构各不相同。打开文件后,其在内存中的表示就不同。原创 2023-10-27 20:45:47 · 165 阅读 · 0 评论 -
第四章 文件管理 十、文件系统的全局结构
物理格式化,即低级格式化――划分扇区,检测坏扇区,并用备用扇区替换坏扇区。逻辑格式化后,磁盘分区(分卷Volume),完成各分区的文件系统初始化。原创 2023-10-28 05:00:00 · 377 阅读 · 1 评论 -
第四章 文件管理 九、文件系统的层次结构
1.用户需要通过操作系统提供的接口发出上述请求―一。原创 2023-10-27 20:01:52 · 223 阅读 · 0 评论 -
第四章 文件管理 八、文件保护
为文件设置一个“口令”(如: abc112233),用户请求访问该文件时必须提供“口令”。口令一般存放在文件对应的FCB或索引结点中。用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许该用户访问文件使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。在每个文件的FCB(或索引结点)中增加一个访问控制列表(Access-Control List.ACL),该表中记录了各个用户可以对该文件执行哪些操作。原创 2023-10-27 19:53:26 · 135 阅读 · 0 评论 -
第四章 文件管理 七、文件共享
(1) 索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数。若count = 2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。(2)若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点的count值减1。若count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。(3)当count = 0时系统负责删除文件。删除文件(1)当User3访问“ccc”时,操作系统判断文件“ccc”属原创 2023-10-27 05:30:00 · 396 阅读 · 1 评论 -
第四章 文件管理 六、文件的基本操作
目录一、创建文件(create系统调用)1、进行Create系统调用时,需要提供的几个主要参数:2、操作系统在处理Create系统调用时,主要做了两件事:二、删除文件(delete系统调用)1、进行Delete系统调用时,需要提供的几个主要参数:2、操作系统在处理Delete系统调用时,主要做了几件事:三、读文件(read系统调用)四、写文件(write系统调用)五、打开文件(open系统调用)1、在很多操作系统中,在对文件进行操作之前,要求用户先使用open系统调用“打开文件”,需要提供的几个主要参数:2原创 2023-10-26 22:04:00 · 319 阅读 · 0 评论 -
第四章 文件管理 五、文件存储空间管理
(2)找到起始块号为10的空闲区间有3个空闲块。(1)假设要创建一个占三个磁盘块的文件。(3)存入,并更改空闲块表。原创 2023-10-26 21:36:53 · 151 阅读 · 0 评论 -
第四章 文件管理 四、文件的物理结构(文件分配方式)
连续分配方式要求每个文件在磁盘上占有一组连续的块。(1)类似于链表,每个物理块号只知道它的前驱和后继,若要访问第i个物理块号,只有先把前面i-1个都访问了才行.采用链式分配(隐式链接)方式的文件,只支持顺序访问,不支持随机访问,查找效率低。另外,指向下一个盘块的指针也需要耗费少量的存储空间。注意:物理块号可以是隐含的。原创 2023-10-25 14:01:49 · 449 阅读 · 0 评论 -
第四章 文件管理 三、文件目录
当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项。原创 2023-10-23 15:59:37 · 118 阅读 · 0 评论 -
第四章 文件管理 二、文件的逻辑结构
文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件如:Windows操作系统中的.txt文件。由一组相似的记录组成,又称“记录式文件每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID)根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。平均查找次数:要查的级数*表长的一半。原创 2023-10-23 15:28:49 · 589 阅读 · 0 评论 -
第四章 文件管理 一、初识文件管理
由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。指明文件的类型。文件存放的路径(让用户使用)、在外存中的地址。(操作系统使用,对用户不可见)指明文件大小创建时间、上次修改时间文件所有者信息。对文件进行保护的访问控制信息。 可以“创建文件”。(点击新建后,图形化交互进程在背后调用了“create系统调用”)可以“读文件”,将文件数据读入内存,才能让CPU处理。(双击后,原创 2023-10-23 14:58:22 · 104 阅读 · 0 评论 -
第三章 内存管理 十五、内存映射文件
目录一、传统的文件访问方式二、内存映射文件1、方便文件的访问2、实现文件数据的共享三、总结原创 2023-10-22 13:33:11 · 136 阅读 · 0 评论 -
第三章 内存管理 十四、页面分配策略
驻留集:指请求分页存储管理中给进程分配的物理块的集合。刚刚换出的页面马上又要换入内存,刚刚换入的页面马上又要换出外存,这种频繁的页面调度行为称为抖动,或颠簸。产生抖动的主要原因是进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)指在某段时间间隔里,进程实际访问页面的集合。原创 2023-10-22 13:25:29 · 370 阅读 · 0 评论 -
第三章 内存管理 十三、页面置换算法(最佳置换算法、先进先出置换算法、最近最久未使用置换算法、时钟置换算法、改进型的时钟置换算法)
页面置换算法是指在操作系统中,当需要调入一个页面时,若所有的物理页面已被占用,则需要选择一个页面进行置换。页面置换算法是解决内存不足的问题,从而实现更多程序同时运行的重要手段之一。每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率。每次选择淘汰的页面是最早进入内存的页面。原创 2023-10-22 05:00:00 · 1022 阅读 · 0 评论 -
第三章 内存管理 十二、请求分页管理方式
2、根据要访问的逻辑地址的页号2,找到该页的状态是没有放入内存,所以会产生缺页中断,将缺页进程堵塞,放入堵塞队列,调页完成后再将其唤醒,放回就绪序列。3、如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项。(此时内存块A空闲)过,则要将其写回外存。(这里内存块C的内容被修改过)7、这样就可以空出C号内存块,然后让页号0的进程去使用,然后它将外存写入内存C。5、如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,4、将内存块A分配给页号0。6、将C的数据写回外存。原创 2023-10-21 20:11:35 · 326 阅读 · 0 评论 -
第三章 内存管理 十一、虚拟内存的基本概念
虚拟内存是一种计算机操作系统的内存管理技术,它将计算机物理内存和硬盘上的空间结合起来,使得进程能够使用超过物理内存容量的内存。虚拟内存将进程所需的部分数据和代码存储到物理内存中,而将不经常使用的数据和代码存储到硬盘上,当需要使用这些数据和代码时,再从硬盘上通过页调度等技术交换到物理内存中。虚拟内存可以大大提高计算机的运行速度和多任务处理能力。原创 2023-10-20 05:30:00 · 343 阅读 · 0 评论 -
第三章 内存管理 十、段页式管理方式
1、进程会先分段,再分页;2、内存也会被分为大小相同的物理块;3、经过分页后的进程,会被依次放在内存块中;原创 2023-10-19 21:52:40 · 105 阅读 · 0 评论 -
第三章 内存管理 九、基本分段存储管理方式
1、根据每个程序的自身逻辑来进行划分2、段内连续,段间不连续3、由段号(段名)以及段内地址(段内偏移量)所组成段号的位数决定了每个进程最多可以分几个段段内地址位数决定了每个段的最大长度是多少4、例子在上述例子中,段号占了16位,因此该系统中每个进程最多有个段。段内地址占了16位,因此每个段的最大长度为。原创 2023-10-19 05:30:00 · 649 阅读 · 0 评论 -
第三章 内存管理 八、两级页表
二级页表是一种分层的虚拟内存管理机制。在二级页表中,虚拟地址被分成两个层次,第一层是页目录,第二层是页表。通过这种方式,二级页表可以管理更大的虚拟内存空间。在使用二级页表时,对于每个进程,操作系统都会创建一个自己的一级页表。一级页表中的页目录项可以指向一个二级页表。在二级页表中,每个页表项可以指向一个物理页帧。由于虚拟地址空间很大,如果使用单层页表来管理虚拟内存,那么需要大量的内存空间来存储页表。而使用二级页表可以将页表的大小缩小到可以接受的范围内。原创 2023-10-18 05:30:00 · 2001 阅读 · 0 评论 -
第三章 内存管理 七、具有快表的地址变换结构
快表,又称联想寄存器(TLB,translation lookaside buffer),是一种访问速度比内存快很多的高速缓存(TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表。注意:一般不把整个页表都放在TLB里,因为成本太高了。原创 2023-10-17 16:05:54 · 639 阅读 · 0 评论 -
第三章 内存管理 六、基本地址变换结构
基本地址变换结构是指计算机系统中用于实现虚拟地址到物理地址转换的基本硬件结构。基本地址变换结构通常包括以下几个部分:地址转换映射表:是一个存储虚拟地址到物理地址映射关系的表格。通常由操作系统维护,在地址变换时起到查找物理地址的作用。地址变换缓存:也称为转换后备缓存或TLB(Translation Lookaside Buffer),是一个快速查找表,用于加速地址变换。它保存了最近访问的一部分虚拟地址到物理地址的映射关系,可以减少对主地址映射表的访问次数。原创 2023-10-17 15:29:15 · 220 阅读 · 0 评论 -
第三章 内存管理 六、基本分页存储管理
在基本分页存储管理中,物理内存被划分成固定大小的块,称为页面(Page),而程序代码和数据被分成相同大小的块,称为页帧(Page Frame)。当程序需要访问内存中的一个页面时,它通过页面号查找相应的页帧号,并将该页帧号装入内存中。如果内存中没有可用的空闲页帧,则需要进行页面置换(Page Replacement)操作,将某个已经在内存中的页面替换出去,以便为新的页面腾出空间。每个页面都有一个唯一的标识符,称为页面号(Page Number),它指明该页面在程序中的位置。原创 2023-10-16 23:20:07 · 131 阅读 · 0 评论 -
第三章 内存管理 五、动态分区分配算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)
每次都选最大的分区进行分配,虽然可以让分配后留下的空闲区更大,更可用,但是这种方式会导致较大的连续空闲区被迅速用完。算法思想:为了解决最佳适应算法的问题――即留下太多难以利用的小碎片,可以在每次分配时优先使用最大的连续空闲区,这样分配后剩余的空闲区就不会太小,更方便使用。(1)假设我们要插入一个大小为15MB的内存,它会比较空闲区的大小,第一次遇到的空闲区为20MB,所以直接放入。每次分配内存时从上次查找结束的位置开始查找空闲分区链(或空闲分区表),找到大小能满足要求的第一个空闲分区。原创 2023-10-16 21:55:57 · 1778 阅读 · 0 评论 -
第三章 内存管理 四、连续分配管理方式
1、单一连续分配(single contiguous allocation)是一种内存分配方式,指的是将进程所需的全部内存空间分配在一个连续的地址空间上。2、这种分配方式不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。2、根据常在系统中运行的作业大小情况进行划分(多个小分区,适量中等分区,少量大分区)若我要回收进程4,则就要和10MB这个空闲区相结合,成为14MB的空闲区。2、在单一连续分配方式中,内存被分为系统区和用户区。原创 2023-10-15 22:47:01 · 383 阅读 · 0 评论 -
第三章 内存管理 三、覆盖与交换
目录一、覆盖技术二、交换技术三、总结1、在覆盖技术中,我们要找到程序的调用结构。2、因为这些程序不可能同时被调用(互斥调用),所以我们只需要选出需要空间最大的程序。3、在物理内存中开拓一片与最大程序等大的区域来存放程序。1、对换区类似于缓存区。2、可能会导致低优先级的进程 “饥饿”。3、PCB会常驻内存的原因是因为需要记录它们在内存中的位置。原创 2023-10-15 21:20:41 · 135 阅读 · 0 评论 -
第三章 内存管理 二、内存管理的概念
内存空间的分配和回收是程序设计中非常重要的一环。这里简要介绍下内存空间的分配和回收。静态分配:在程序编译阶段,由编译器或链接器分配内存空间,这些内存空间一旦分配,就不能再次释放。静态分配的内存空间在程序运行期间都是存在的。动态分配:在程序运行过程中,通过调用操作系统提供的内存分配函数,如malloc、calloc等函数来动态分配内存空间。动态分配的内存空间在使用完毕后需要及时释放,否则将造成内存泄漏。静态回收:静态分配的内存空间由编译器或链接器负责管理,程序运行期间不能释放,只有在程序结束时才能回收。动态回原创 2023-10-13 22:57:23 · 272 阅读 · 1 评论 -
第三章 内存管理 一、内存的基础知识
内存可存放数据,程序执行前需要先放到内存中才能被CPU处理。内存中也有一个一个的“小房间”,每个小房间就是一个“存储单元”。如果计算机“按字节编址”则每个存储单元大小为1字节,即1B,即8个二进制位。如果字长为16位的计算机“按字编址”,则每个存储单元大小为1个字;每个字的大小为16个二进制位。原创 2023-10-13 22:06:03 · 927 阅读 · 0 评论