随笔分类 -  课程 / 操作系统

摘要:一、CPU,寄存器,缓存,RAM,ROM的作用和他们之间的联系 中央处理器 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据 阅读全文
posted @ 2023-10-07 10:12 ImreW 阅读(388) 评论(0) 推荐(0)
摘要:一、什么是生产者-消费者模型 1、简单理解生产者-消费者模型 假设有两个进程(或线程)A、B和一个固定大小的缓冲区,A进程生产数据放入缓冲区,B进程从缓冲区中取出数据进行计算,这就是一个简单的生产者-消费者模型。这里的A进程相当于生产者,B进程相当于消费者。 2、为什么要使用生产者-消费者模型 在多 阅读全文
posted @ 2023-09-22 16:46 ImreW 阅读(116) 评论(0) 推荐(0)
摘要:1、Semaphore 是什么 Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。 可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从停车场出去,显示屏上显示的剩余车 阅读全文
posted @ 2023-07-19 17:47 ImreW 阅读(339) 评论(0) 推荐(0)
摘要:(一)进程 1.概念 进程-操作系统提供的抽象概念,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。程序本身是没有生命周期的,它只是存在磁盘上的一些指令,程序一旦运行就是进程。 首先还是说下「程序」的概念,程序是一些保存在磁盘上的指令的 阅读全文
posted @ 2023-04-21 21:21 ImreW 阅读(85) 评论(0) 推荐(0)
摘要:一、线程池的由来 (一)为什么会有线程池? 想要深入理解线程池的原理得先知道为什么需要线程池。 首先你要明白,线程是一个重资源,JVM 中的线程与操作系统的线程是一对一的关系,所以在 JVM 中每创建一个线程就需要调用操作系统提供的 API 创建线程,赋予资源,并且销毁线程同样也需要系统调用。 而系 阅读全文
posted @ 2023-03-31 21:24 ImreW 阅读(78) 评论(0) 推荐(0)
摘要:一、临界区 (一)概念 临界区指的是一个访问公共资源的程序片段,这些公共资源又无法同时被多个线程同时访问。当有线程进入临界区段时,其他线程或是进程必须等待,以确保这些公共资源是被互斥获得使用。 每个线程中访问临界资源的那段代码称为临界区 (Critical Section),每次只准许一个线程进入临 阅读全文
posted @ 2023-02-26 21:01 ImreW 阅读(228) 评论(0) 推荐(0)
摘要:一、CPU (一)CPU个数、CPU核心数、CPU线程数 CPU个数即CPU芯片个数 CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。 线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如, 阅读全文
posted @ 2023-02-26 13:35 ImreW 阅读(74) 评论(0) 推荐(0)
摘要:一、信号量 1.说明 信号量是一个同步对象,用于维护零和指定最大值之间的计数。 每次线程完成信号灯对象的等待时,计数都会递减,每次线程释放信号灯时递增。 当计数达到零时,不会再成功等待信号灯对象状态发出信号。 当信号量计数大于零时,会将信号量的状态设置为已发出信号;当信号量计数为零时,会将信号量的状 阅读全文
posted @ 2023-02-26 13:15 ImreW 阅读(79) 评论(0) 推荐(0)
摘要:一、位运算符 (一)真值表 位运算符作用于位,并逐位执行操作。“与” “&”、“或” “|” 和 “异或” “^" 的真值表如下所示: pqp&qp|qp^q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 (二)例子 假设如果 A = 60,且 B = 13,现在以 阅读全文
posted @ 2023-02-21 22:09 ImreW 阅读(155) 评论(0) 推荐(0)
摘要:一、硬件结构 冯诺依曼模型 存储器的层次结构 中断是什么 什么是软中断? 二、操作系统结构 内核 三、内存管理 为什么要有虚拟内存? 四、进程管理 进程 线程 调度 进程间有哪些通信方式? 竞争与协作 互斥与同步的实现和使用 经典同步问题 死锁的概念 五、调度算法 进程调度算法(调度) 内存页面置换 阅读全文
posted @ 2023-01-16 15:35 ImreW 阅读(55) 评论(0) 推荐(0)
摘要:键盘可以说是我们最常使用的输入硬件设备了,但身为程序员的你,你知道「键盘敲入A 字母时,操作系统期间发生了什么吗」? 那要想知道这个发生的过程,我们得先了解了解「操作系统是如何管理多种多样的的输入输出设备」的,等了解完这个后,我们再来看看这个问题,你就会发现问题已经被迎刃而解了。 一、设备控制器 我 阅读全文
posted @ 2022-12-17 10:47 ImreW 阅读(66) 评论(0) 推荐(0)
摘要:to do 阅读全文
posted @ 2022-12-16 21:37 ImreW 阅读(26) 评论(0) 推荐(0)
摘要:一、空闲空间管理 前面说到的文件的存储是针对已经被占用的数据块组织和管理,接下来的问题是,如果我要保存一个数据块,我应该放在硬盘上的哪个位置呢?难道需要将所有的块扫描一遍,找个空的地方随便放吗? 那这种方式效率就太低了,所以针对磁盘的空闲空间也是要引入管理的机制,接下来介绍几种常见的方法: 空闲表法 阅读全文
posted @ 2022-12-15 15:56 ImreW 阅读(91) 评论(0) 推荐(0)
摘要:文件的数据是要存储在硬盘上面的,数据在磁盘上的存放方式,就像程序在内存中存放的方式那样,有以下两种: 连续空间存放方式 非连续空间存放方式 其中,非连续空间存放方式又可以分为「链表方式」和「索引方式」。 不同的存储方式,有各自的特点,重点是要分析它们的存储效率和读写性能,接下来分别对每种存储方式说一 阅读全文
posted @ 2022-12-15 10:44 ImreW 阅读(1158) 评论(0) 推荐(0)
摘要:我们从用户角度来看文件的话,就是我们要怎么使用文件?首先,我们得通过系统调用来打开一个文件。 fd = open(name, flag); # 打开文件 ... write(fd,...); # 写数据 ... close(fd); # 关闭文件 上面简单的代码是读取一个文件的过程: 首先用 ope 阅读全文
posted @ 2022-12-14 21:54 ImreW 阅读(87) 评论(0) 推荐(0)
摘要:文件系统的种类众多,而操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就称为虚拟文件系统(Virtual File System,VFS)。 VFS 定义了一组所有文件系统都支持的数据结构和标准接口,这样程序员不需要了解文件系统的工作原理,只需要了解 VFS 提 阅读全文
posted @ 2022-12-14 21:48 ImreW 阅读(78) 评论(0) 推荐(0)
摘要:文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。 文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。 Linux 最经典的一 阅读全文
posted @ 2022-12-14 21:43 ImreW 阅读(212) 评论(0) 推荐(0)
摘要:我们来看看磁盘的结构,如下图: 常见的机械磁盘是上图左边的样子,中间圆的部分是磁盘的盘片,一般会有多个盘片,每个盘面都有自己的磁头。右边的图就是一个盘片的结构,盘片中的每一层分为多个磁道,每个磁道分多个扇区,每个扇区是 512 字节。那么,多个具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面,如上图 阅读全文
posted @ 2022-12-13 15:00 ImreW 阅读(454) 评论(0) 推荐(1)
摘要:在了解内存页面置换算法前,我们得先谈一下缺页异常(缺页中断)。 当 CPU 访问的页面不在物理内存时,便会产生一个缺页中断,请求操作系统将所缺页调入到物理内存。那它与一般中断的主要区别在于: 缺页中断在指令执行「期间」产生和处理中断信号,而一般中断在一条指令执行「完成」后检查和处理中断信号。 缺页中 阅读全文
posted @ 2022-12-12 14:05 ImreW 阅读(211) 评论(0) 推荐(0)
摘要:进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。 当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。 什么时候会发生 CPU 调度呢?通常有以下情况: 当进程从运行状态转到等待状态;(阻塞状态) 当进程从运行状态转到就绪状态; 当进程从等待状态转 阅读全文
posted @ 2022-12-11 22:05 ImreW 阅读(59) 评论(0) 推荐(0)