操作系统
文章平均质量分 78
操作系统作为计算机的基础课程之一,对于我们在学习网络、web开发等内容具有重要的支撑作用,便于快速的理解以上知识。现在我将由浅入深的学习操作系统并做相应的学习笔记,欢迎大家指正,共同进步~
Honey Ro
这个作者很懒,什么都没留下…
展开
-
【操作系统】IO核心子系统原理讲解
上篇文章了解了操作系统IO软件层次结构。本篇文章将继续深入,了解这些IO软件的实现方式。原创 2023-11-23 15:29:41 · 116 阅读 · 0 评论 -
【操作系统】I/O软件层次结构
偶然看到“程序员的护城河是什么”这个话题,作为一个工作两年多的程序员吧,经常看到网上关于各种35岁危机、裁员甚至猝死之云云。我的护城河是什么?我的护城河不单单是指一直作为一个程序员不被开除,而是我有哪些能力让自己始终不担心生计?或者说是应该提升哪些能力使得自己不对未来那么担忧和迷茫。思考了一段时间。首先,要排除家里“有矿”的前提(就算有矿那也得在精神层面不断提升自己吧)。我觉得第一就是要有始终学习的习惯,不然淘汰只会提前到来;原创 2023-11-22 17:13:28 · 188 阅读 · 0 评论 -
【操作系统】I/O管理概述
I/O就是“输入/输出”,将数据输入到计算机,或者接收计算机的数据输出到外部设备。原创 2023-11-22 15:59:35 · 117 阅读 · 0 评论 -
【操作系统】文件系统的实现
文件系统从上往下分为了五层,分别是用户调用接口、文件目录系统、存取控制模块、逻辑文件系统与文件信息缓冲区、物理文件系统。在操作系统中,目录实现主要有两种方式:线性列表是一种常见的数据结构,有链表和数组两种。我们将FCB(文件控制块)中的信息简化为文件名与文件索引节点指针后,文件的目录结构如下:链表:数组:哈希表依赖于哈希算法,是一种散列算法,文件名进行哈希计算后得到一个值,将这个值作为索引。相较于线性列表,哈希表的方式使得文件名与索引之间建立了一种映射关系,查询效率更高。文件最终是保存在磁盘上,磁盘的存原创 2023-11-21 17:19:11 · 291 阅读 · 0 评论 -
【操作系统】文件系统之文件共享与文件保护
为了实现文件的共享,引入了“计数器”字段,当一个文件每被一个用户所共享,那么计数器就加一。,链接文件的文件内容指向了原文件。从实现方式来看,很明显硬链接的效率会更高一些,但是另一方面,软链接相较于硬链接要更加安全(不会删除原文件)。通过索引节点表中的索引节点指针是否指向真是文件索引节点的不同,文件共享的方式分为了。加密保护,即使用加密算法对文件内容进行了加密处理,如果没有密钥,即便获取了文件也无法识别正确内容。硬链接的索引节点指针直接指向真实文件的索引节点,当硬链接全部删除后,文件将会被删除。原创 2023-11-21 14:05:15 · 197 阅读 · 0 评论 -
【操作系统】文件系统的逻辑结构与目录结构
在操作系统中,文件被定义为:以计算机硬盘为载体的存储在计算机上的信息集合。原创 2023-11-21 11:13:44 · 147 阅读 · 0 评论 -
【操作系统】虚拟内存浅析
所谓的“固定分配”就是操作系统分配固定大小的总页面,不够时不能向操作系统申请新的内存空间;所谓的“局部置换”,是说分配的内存不足时,只能在进程所分配的内存页中进行置换;而“全局置换”是可以从主存中其余空闲的内存中进行置换。由于进程在执行过程中,并不会一次性将程序装入,因此每当需要装入新的程序部分到内存时,就会进行请求。相对应的,如果页面置换算法判断为淘汰时(例如访问频率低),内存中的程序就需要对换入硬盘缓存中。当程序执行过程中,发现所需要的部分未加载至内存,将会发生缺页中断,将所需部分程序装入至内存。原创 2023-11-17 17:26:08 · 82 阅读 · 0 评论 -
【操作系统】内存的非连续分配管理
每个进程所分配的内存都是一个连续分区(一个分区内部)。那么会导致什么问题呢?由于每个进程的内存空间都是连续分配,而进程所需要的内存空间并不会完全与分配的内存分区大小一致,也就导致了内存的“碎片化”。对于固定分区分配而言,“碎片”来自于每个进程的分区内部;对于动态分区分配而言,每次都要从用户区寻找一块符合条件的分区,导致整个用户区在进程的各个内存分区之间夹杂很多“外部碎片”。而“碎片化”直接将会导致内存的利用率降低。原创 2023-11-16 17:47:34 · 224 阅读 · 0 评论 -
【操作系统】存储器的多层结构以及进程运行的准备工作
一个程序在内存中可能存在多个进程,操作系统可以考虑将不活跃的进程暂时交换到硬盘缓存中,达到内存扩充的目的。在一个操作系统中,我们的程序不是运行在磁盘上,而是运行在操作系统的内存中。内存,广义上可以认为就是我们电脑中的内存条,这也是为什么内存越大,运行的程序支持的越大/多。装入程序会根据程序指定的内存位置将需要运行的程序分配(如果指定位置被占用,重新计算位置)到“合适的位置”,即空闲空间中。当内存中存在多个运行的进程,假如有程序正在进行装入过程,那么必须避免正在运行的进程取访问装入程序的内存地址。原创 2023-11-10 15:16:48 · 66 阅读 · 0 评论 -
【操作系统】死锁问题概述
多个进程由于竞争资源而造成的阻塞现象,若无外力作用,这些进程都将无法继续推进。原创 2023-11-09 13:56:08 · 49 阅读 · 0 评论 -
【操作系统】进程间的协作(三)
总之,条件变量是封装于管程内部,当进程执行所需的资源不足时,管程会通过条件变量将进程移入对应的条件队列(使用wait);当该条件满足时就会唤醒进程并移入就绪队列(signal)去重新获取所需资源(当然依旧存在被阻塞的可能性)。(进行PV操作的函数)组成的管理程序(封装)。注意:管程是由进程去调用的一个。管程,即进程管理,用于。原创 2023-11-07 15:42:45 · 44 阅读 · 0 评论 -
【操作系统】进程间的协作(二)
在介绍了软件与硬件对于进程互斥访问临界资源后,接下来了解一种新的机制:信号量机制。原创 2023-11-07 14:56:52 · 29 阅读 · 0 评论 -
【操作系统】进程间的协作(一)
需要注意的是,以上三种通信方式是同一计算机中进程的通信方式。而我们通常两个计算机之间的通信,实际上是进程间的通信,只不过是两个计算机的进程通信,他的通信方式不同于以上三种方式。进程间通过消息传递的方式进行通信,可以分为两类:直接通信、间接通信。与共享内存有点类似,区别在于消息传递的间接通信是通过原语实现的。进程通信即进程间的信息交换;直接通信:点到点发送;间接通信:广播信箱;原创 2023-10-31 15:37:13 · 62 阅读 · 0 评论 -
【操作系统】调度算法介绍
不同操作系统中可能根据不同的需求而采用不同的调度算法。常见的调度算法有先来先服务(FCFS)、短作业优先(SJF)、高响应比优先调度(HRRN)、优先级调度(PSA)、时间片轮转调度(RR)、多级反馈队列调度(MFQ)。原创 2023-10-30 17:10:15 · 92 阅读 · 0 评论 -
【操作系统】进程的运行机制
操作系统通过原语来对进程进行有效的管理,包括创建进程、撤销已有的进程、挂起、阻塞和唤醒、进程切换等多种操作。为了方便系统和用户观察和分析进程,在进程控制中提供了挂起原语和激活原语。根据一定的算法和原则将处理机资源进行重新分配的过程。由若干条指令组成,完成特定的功能,是一种。非剥夺/非抢占式调度。原创 2023-10-30 14:53:29 · 33 阅读 · 0 评论 -
【操作系统】线程的概念
线程(Thread)是进程的轻型实体,也叫“轻量级进程”,是一系列活动按事先设定好的顺序一次执行的过程,是一系列指令的集合。线程是一条执行路径,不能单独存在,必须包含在进程之中。另外,线程是操作系统中运算调度的最小单位。原创 2023-10-19 13:54:12 · 41 阅读 · 0 评论 -
【操作系统】进程管理-进程的概念与结构
进程,是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。原创 2023-10-19 11:24:40 · 34 阅读 · 0 评论 -
【操作系统】运行机制介绍
因此,运行在用户空间的程序即为用户程序,运行在内核空间的程序即为内核程序;当执行用户程序时CPU处于用户态,执行内核程序的时候CPU处于核心态;特权指令是指CPU执行内核态指令,非特权指令即CPU执行用户态执行。提高多道程序环境下CPU的利用率:比如当前程序执行到IO操作时,CPU可以不必等待IO结束,而是转而执行其他进程的CPU指令,减少了CPU的等待时间也就提高了CPU的利用率。例如执行某程序指令时,发现所需要的文件并不存在于内存中,此时将会引发故障中断,CPU会进入内核态去加载所缺失的文件;原创 2023-10-18 18:00:06 · 62 阅读 · 0 评论