
Operating System
XV_
喜欢读书,热衷于探究本质,热爱技术,终身学习,不断成长。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【操作系统】使用循环创建线程,一个手残导致的bug
创建了线程pthread_t c[5]的数组,然后使用pthread_join()的时候,不是出现Segmentation fault就是出现pthread join error 3目前还不知道咋回事……先在主线程使用pthread_exit(0)而不是return 0暂时避开问题了。原创 2020-10-29 19:42:14 · 759 阅读 · 0 评论 -
【操作系统】进程调度(4):I/O、不可预测的运行时间
0 前言上一篇文章:进程调度(3):RR(轮转) 算法 原理与实践1 前提铺垫与上一篇同。2 引入I/O操作之前我们一直提及的是计算密集型程序,现在我们的程序可以进行I/O交互了,它会发起I/O请求,比如向磁盘发起请求获取数据。这个时候,我们之前的算法会发生怎样的变化呢?我们来探索一下!2.1 进程的三状态模型Ready:就绪态Running:运行态Waiting:阻塞态 / 等待最后还有一个DONE,代表执行完成,我们看一下其定义:RUNNING - the process i原创 2020-10-14 11:30:49 · 811 阅读 · 0 评论 -
【操作系统】进程调度(3):RR(轮转) 算法 原理与实践
0 前言接上一篇文章:进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践1 前提铺垫除了与上一篇相同的,这里介绍新的基础知识。1.1 三种类型的程序计算密集型(CPU导向)输入输出密集型(I/O导向)中间型所谓计算密集型程序,就是大量时间都在占用CPU做运算,例如科学计算。而输入输出密集型程序,则大量时间都在进行输入输出,你很熟悉它,例如人机交互,我们每时每刻都在用计算机干这个事情。中间型就是二者都有,占比差不多。那么介绍这个有什么用?当我们的目标不同的时候,性能指标的原创 2020-10-14 10:17:04 · 8554 阅读 · 0 评论 -
【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践
0 前言接上一篇文章:进程调度(2a):SJF(短任务优先) 算法 原理与实践1 前提铺垫与上一篇同。2 STCF 原理STCF(Shortest Time-to-Completion First)最短完成时间优先。2.1 算法还记得上一个算法SJF吗?它是非抢占式的,只能傻傻地等着长任务A完成,这显然是“懦弱”的,并且降低了系统的效率,因此,让我们给它添加一个抢占功能吧!抢占什么呢?当然是A了,还是用上次的例子A:100B:10C:20A在0时刻到达并执行,B和C在10时刻到达原创 2020-10-12 23:31:30 · 3559 阅读 · 1 评论 -
【操作系统】进程调度(2a):SJF(短任务优先) 算法 原理与实践
0 前言接上一篇文章:进程调度(1):FIFO(先进先出)算法 原理与实践1 前提铺垫请参考上一篇文章的前提铺垫部分,本文与之完全一致。2 SJF 原理SJF(Shortest Job First)短任务优先,也就说,对于Ready的多个进程,先执行最短的内一个。2.1 算法这种算法在我们的《算法与数据结构》中也是常见的,对于多个即将执行的任务,每一次都选择最短的先执行,执行完之后再执行次短的,以此类推,这样一来,每个任务的周转时间都是最小的,平均周转时间也就是最小的。单纯从平均周转时间这个原创 2020-10-12 22:18:07 · 4130 阅读 · 1 评论 -
【操作系统】进程调度(1):FIFO(先进先出)算法 原理与实践
0 前言本文基于书籍《操作系统导论》。1 前提铺垫1.1 进程的设定我们知道,进行进程调度的前提是硬件和OS的底层,能够支持上下文切换,这里我们假设已经实现内存中要有就绪态的进程!我们基于第二点,再做进一步的假设,以简化问题,对于已经进入或者即将进入内存的进程,我们它们假设:工作时间相同进程同时到达系统一旦开始,进程保持运行一直到其完成只使用CPU,不使用IO运行时间都是已知的我先来解释一下这几点假设第2点:意味着有好多个等着被调度进入CPU执行的进程,坐等操作系统“翻原创 2020-10-12 16:58:36 · 21807 阅读 · 4 评论 -
【操作系统】虚拟化CPU、Memory,共享文件
几个概念CPU、虚拟CPU进程内存、虚拟地址空间物理的CPU被OS虚拟成了多个虚拟的CPU,这些虚拟CPU分别运行各自的程序,这些正在运行的程序被称为进程。物理内存被OS虚拟成了多个虚拟地址空间,每个进程都有独立的、自己的地址空间,程序的指令和数据都在地址空间中磁盘被OS虚拟化为文件系统,文件是被多个程序共享的,它并不是多个虚拟的磁盘,不过也不是无条件共享,涉及到例如互斥共享等多个问题,以后再谈。1 Virtualizing the CPU我们在Linux系统上运行C语言程序,体会原创 2020-10-07 11:19:50 · 430 阅读 · 0 评论