
计算机操作系统
文章平均质量分 68
kankan_202104
这个作者很懒,什么都没留下…
展开
-
操作系统④-⑤:多线程同步、互斥、同步、如何实现:锁和信号量(PV操作)
多线程同步线程之间有共享进程的资源,⽐如代码段、堆空间、数据段、打开的⽂件等资源,但每个线程都有⾃⼰独⽴的栈空间。1 互斥互斥(mutualexclusion):保证⼀个线程在临界区执⾏时,其他线程应该被阻⽌进⼊临界区。解决了并发进程/线程对临界区的使⽤问题。多进程竞争公共资源的时候,也可以使⽤互斥的⽅式来避免资源竞争造成的资源混乱。2 同步所谓同步,就是并发进程/线程在⼀些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通信息称为进程/线程同步。3 互斥与同步的实现和使用——原创 2021-12-02 21:32:01 · 1256 阅读 · 0 评论 -
操作系统④-④:管道(匿名,命名)、消息队列、共享内存、信号量、信号、Socket、总结写的很好
进程间通信1 管道通信效率低,不适合进程间频繁地交换数据。分为匿名管道和命名管道匿名管道,⽤完了就销毁。命名管道,也被叫做 FIFO。通信范围对于匿名管道, 它的通信范围是存在⽗⼦关系的进程。因为管道没有实体,也就是没有管道⽂件,只能通过 fork 来复制⽗进程 fd ⽂件描述符,来达到通信的⽬的。对于命名管道, 它可以在不相关的进程间也能相互通信。因为命令管道,提前创建了⼀个类型为管道的设备⽂件,在进程⾥只要使⽤这个设备⽂件,就可以相互通信。不管是匿名管道还是命名管道,进程写⼊的数据都是原创 2021-12-02 20:11:00 · 1267 阅读 · 0 评论 -
操作系统④-③:调度、调度时机、调度原则、调度算法
1 调度选择⼀个进程运⾏这⼀功能是在操作系统中完成的,通常称为调度程序(scheduler)。2 调度时机当进程从⼀个运⾏状态到另外⼀状态变化的时候,其实会触发⼀次调度。从就绪态 -> 运⾏态:当进程被创建时,会进⼊到就绪队列,操作系统会从就绪队列选择⼀个进程运⾏;从运⾏态 -> 阻塞态:当进程发⽣ I/O 事件⽽阻塞时,操作系统必须另外⼀个进程运⾏;从运⾏态 -> 结束态:当进程退出结束后,操作系统得从就绪队列选择另外⼀个进程运⾏;调度算法:⾮抢占式调度算法。抢占式调度原创 2021-12-02 18:46:13 · 1791 阅读 · 0 评论 -
操作系统④-②:为什么使用线程、什么是线程、线程的优缺点、进程与线程的比较、线程的上下文切换、线程的实现(用户线程,内核线程,轻量级进程)
1 为什么使用线程早期的操作系统中都是以进程作为独⽴运⾏的基本单位,直到后⾯,计算机科学家们⼜提出了更⼩的能独⽴运⾏的基本单位,也就是线程。线程(Thread)之间可以并发运⾏且共享相同的地址空间。2 什么是线程线程是进程当中的⼀条执⾏流程。同⼀个进程内多个线程之间可以共享代码段、数据段、打开的⽂件等资源,但每个线程各⾃都有⼀套独⽴的寄存器和栈,这样可以确保线程的控制流是相对独⽴的。register:n. 寄存器 v. 注册3 线程的优缺点4 进程和线程的比较线程是调度的基本单位,而进原创 2021-12-02 16:41:21 · 672 阅读 · 0 评论 -
操作系统④-①:进程的状态(并发并行的区别,挂起状态)、进程的控制结构(PCB)、进程的控制(四种)、进程上下文切换(过程及场景))
1 进程的状态什么是进程并发和并行的区别多个程序、交替执⾏的思想,就是 CPU 管理多个进程的初步想法。单核的 CPU 在某⼀个瞬间,只能运⾏⼀个进程。但在 1 秒钟期间,它可能会运⾏多个进程,这样就产⽣并⾏的错觉,实际上这是并发。进程有「运行 - 暂停 -运行」的活动规律CPU 可以从⼀个进程(做菜)切换到另外⼀个进程(买可乐),在切换前必须要记录当前进程中运行的状态信息,以备下次切换回来的时候可以恢复执⾏。进程的状态变迁虚拟内存管理的操作系统中,通常会把阻塞状态的进程的物理内存原创 2021-12-02 15:52:48 · 665 阅读 · 0 评论 -
操作系统③:虚拟地址、内存分段/分页、TLB、Linux内存管理(逻辑地址、线性地址/虚拟地址、物理地址)、总结-写的太好
1 虚拟地址内存管理单元(Memory Management Unit)操作系统会提供⼀种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。2 内存分段通过内存分段和内存分页来管理虚拟地址和物理地址之间的关系。虚拟地址是通过段表与物理地址进⾏映射的,分段机制会把程序的虚拟地址分成 4 个段,每个段在段表中有⼀个项,在这⼀项找到段的基地址,再加上偏移量,于是就能找到物理内存中的地址。分段的缺点内存分页解决上述两个缺点多级页表4GB 空间的映射就需要有 4MB 的内存来存储⻚表,原创 2021-12-01 00:28:13 · 1476 阅读 · 0 评论 -
操作系统②:内核、并发并行
1 内核概念让内核作为应⽤连接硬件设备的桥梁,应⽤程序只需关⼼与内核交互,不⽤关⼼硬件的细节。作用内存分为内核空间和用户空间内核空间的代码可以访问所有内存空间。当程序使⽤⽤户空间时,我们常说该程序在⽤户态执⾏,⽽当程序使内核空间时,程序则在内核态执⾏。Linux特点多任务 - MutiTask:并发或并行可执行文件格式Linux:ELFWindows:PE(可移植执行文件),扩展名.exe / .dll / .sys内核类型Linux:宏内核Window:混合内核原创 2021-11-30 21:06:48 · 181 阅读 · 0 评论 -
操作系统①-②硬件:缓存一致性、CPU如何执行任务、软中断、计算机系统对数字的存储
1 缓存一致性数据写入怎么保证一致性对于数据的写⼊, CPU 都会先写⼊到 Cache ⾥⾯,然后再在找个合适的时机写⼊到内存,那就有「写直达」和「写回」这两种策略来保证 Cache 与内存的数据⼀致性:写直达,只要有数据写⼊,都会直接把数据写⼊到内存⾥⾯,这种⽅式简单直观,但是性能就会受限于内存的访问速度。写回,对于已经缓存在 Cache 的数据的写⼊,只需要更新其数据就可以,不⽤写⼊到内存,只有在需要把缓存⾥⾯的脏数据交换出去的时候,才把数据同步到内存⾥,这种⽅式在缓存命中率⾼的情况,性能会更原创 2021-11-10 20:03:48 · 767 阅读 · 0 评论 -
操作系统①-①硬件结构:CPU如何运行、存储器金字塔、CPU Cache(如何写出更快的代码)
硬件结构1 CPU如何运行内存位、字节、kb我们的程序和数据都是存储在内存,存储的区域是线性的。数据存储的单位是⼀个⼆进制位(bit) ,即 0 或 1。最小的存储单位是字节(byte) , 1 字节等于 8 位。1byte = 8bit;1kb = 1024 b(字节)位宽:线路位宽:一条线路能传1bit,32条地址总线可以传2 ^ 32 = 4G。CPU位宽:64 位 CPU 就可以⼀次性算出加和两个 64 位数字的结果,因为 64 位 CPU 可以⼀次读⼊ 64 位的数字,并且原创 2021-11-10 15:20:55 · 1128 阅读 · 0 评论