![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 93
light_2025
Looking back, there is no regret !
展开
-
操作系统_文件管理(三)
找到文件后,它的 FCB 会复制到整个系统的打开文件表中。文件对象包含与该文件相关联的目录项对象,包含该文件的文件系统、文件指针等,还包含在该文件对象上调用的一系列操作函数。:超级块对象对应于磁盘上特定扇区的文件系统超级块,用于存储已安装文件系统的元信息,元信息中包含文件系统的基本属性信息,如文件系统类型、文件系统基本块的大小、文件系统所挂载的设备、操作方法(函数)指针等。当所有打开某个文件的用户都关闭该文件后,任何更新的元数据将复制到磁盘的目录结构中,并且整个系统的打开文件表的对应条目也会被删除。原创 2023-08-29 20:33:39 · 339 阅读 · 0 评论 -
操作系统_文件管理(二)
用户 B 仍可以使用该文件。为使用户 B 能共享用户 A 的一个文件 F,可以由系统创建一个 LINK 类型的新文件,也取名为 F,并将该文件写入用户 B 的目录中,以实现用户 B 的目录与文件 F 的链接。当用户 B 要访问被链接的文件 F 且正要读 LINK 类新文件时,操作系统查看到要读的文件时 LINK 类型,则根据该文件中的路径去找到文件 F,然后对它进行读,从而实现用户 B 对文件 F 的共享。当删除一个文件时,先从该目录中找到该文件的目录项,回收该文件所占用的存储空间,然后清除该目录项。原创 2023-08-29 20:26:30 · 314 阅读 · 0 评论 -
操作系统_文件管理(一)
一个进程通常只对一个文件读或写,(也就是说我们想要对一个文件执行读或者写的操作时,我们在用户层通过系统调用请求操作系统服务,操作系统会创建一个进程,分配相关空间和创建一个进程控制块,通过该进程执行对文件的读或者写的操作,这一系列的操作都是操作系统来完成的),因此当前操作位置可作为每个进程当前文件位置的指针。最简单的索引顺序文件只使用了一级索引。一个文件的目录项中 “文件物理地址” 字段应包括第一块的地址和该文件所分配区域的长度,若文件长 n 块并从位置 b 开始,则该文件将占有块 b,b+1,b+2,……原创 2023-08-29 14:21:47 · 1039 阅读 · 0 评论 -
操作系统_内存管理(二)
此时应将缺页的进程阻塞(调页完成唤醒),若内存中没有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中的相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。进程在运行中需要访问的页面不在内存,便提出请求,由系统将其所需的页面调入内存。一旦程序访问了某个存储单元,在不久后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。原创 2023-08-19 19:39:22 · 517 阅读 · 1 评论 -
操作系统_内存管理(一)
12 位,页号部分为 20 位,若不采用分级页表,则仅页表就要占用 220x4B/4KB = 1024 页,这大大超过了许多进程自身需要的页面,对于内存来说是非常浪费资源的,而且查询页表工作也会变得十分不便、试想若把这些页表放在连续的空间内,查询对应页的物理页号时可以通过页表首页地址+页号x4B的形式得到,而这种方法查询起来虽然相对方便,但连续的1024 页对于内存的要求实在太高,并且上面也说到了其中大多数页面都是不会用到的,所以这种方法并不具有可行性。下图是一个进程在内存中的映像。原创 2023-08-19 15:58:54 · 1009 阅读 · 0 评论 -
操作系统_进程与线程(四)
安全性算法是银行家算法的核心,在银行家算法的题目中,一般会有某个进程的一个资源请求向量,读者只要执行上面所介绍的银行家算法的前三步,马上就会得到更新的 Allocation 矩阵和 Need 矩阵,再按照上例的安全性算法判断,就能知道系统能否满足进程提出的资源请求。例如,进程 A 等待进程 B 发的消息,进程 B 又在等待进程 A 发的消息,可以看出进程 A 和 B 不是因为竞争同一资源,而是在等待对方的资源导致死锁。即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足前,不把它投入运行。原创 2023-07-31 20:02:42 · 273 阅读 · 0 评论 -
操作系统_进程与线程(三)
首先设置临界区意愿数组,P0 进程首先表达自己想要进入临界区的意愿,然后将 turn 设置为 1 ,表示谦让,我愿意让 P1 进程先进入临界区,然后通过 while 去判断 P1 进程是否也有进入临界区的意愿,如果 P1 进程有进入临界区的意愿,并且 P0 进程也愿意让 P1 优先进入临界区,那么 P0 进程的 while 循环成立,P0 进程等待,P1 进程进入临界区;当有进程存在于临界区时,S 的值为 0,再有进程要进入临界区,执行 P 操作时将会被阻塞,直至在临界区中的进程退出,原创 2023-07-31 11:43:50 · 359 阅读 · 0 评论 -
操作系统_进程与线程(二)
这个时候 P1 进程上处理机运行,但是 P1 进程只运行 1 个时刻,P4 进程就会到达, P4 进程会被插入到队尾,这里注意,因为 P1 进程的处理机还没有用完,所以暂时不会进行调度,P1 进程仍然处于运行态;若没有处理机调度,意味着要等到当前执行的进程执行完毕后,下一个进程才能执行,而实际情况中,进程时常需要等待一些外部设备的输入,而外部设备的速度和处理机相比是非常缓慢的,若让处理机总是等待外部设备,则对处理机的资源是极大的浪费。而对于短作业,需要消耗的处理机时间较短,因此能提高系统的吞吐量。原创 2023-07-30 16:17:41 · 325 阅读 · 0 评论 -
操作系统_进程与线程(一)
这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行、何时停顿,也无法看出它与其他执行程序的关系,因此,程序这个静态的概念已不能如实反映程序并发执行过程的特征。如果存在另外一个进程,那么另外一个进程也会使用上述一系列寄存器,那么可能会导致另一个进程的值覆盖上一个进程的值,为了防止这种现象的发生,上一个进程的时间片结束后,需要保存上一个进程的现场;某进程中的线程对其他进程不可见。原创 2023-07-23 10:13:32 · 444 阅读 · 0 评论 -
操作系统_计算机系统
操作系统中的绝大部分功能都放在微内核外的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线程)服务器、提供虚拟存储器管理功能的虚拟存储器服务器等,它们都是作为进程来实现的,运行在用户态,客户和服务器之间是借助微内核提供的消息传递机制来实现交互的。:① 便于系统的调试和验证,简化了系统的设计和实现。例如,用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机、存储器、设备、文件几个部分构成),工人有熟练的技能,能够控制和协调各个部件的工作,这就是操作系统对资源的管理;原创 2023-07-12 20:48:42 · 5908 阅读 · 1 评论