
操作系统
文章平均质量分 82
932我
这个作者很懒,什么都没留下…
展开
-
操作系统复习思维导图
操作系统思维导图原创 2022-07-16 22:38:07 · 411 阅读 · 0 评论 -
线程-------互斥
进程线程间的互斥相关背景概念 临界资源:多线程执行流共享的资源就叫做临界资源 临界区:每个线程内部,访问临界资源的代码,就叫做临界区 互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起保护作用 原子性(后面讨论如何实现):不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么未完成同步:一般而言,让访问临界资源的过程在安全的前提下(一般都是互斥和原子的),让访问资源具有一定的顺序性(具有合理性)互斥量mutex大部分情况,线程使用的原创 2022-05-11 16:41:30 · 1075 阅读 · 0 评论 -
Linux线程概念
1. Linux线程概念 什么是线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程 线程在进程内部运行,本质是在进程地址空间内运行 在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化 透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程 执行流一个进程内存存在多个线程?可能进程:线程 1:n的关系,是操作系统中是否存在多个..原创 2022-05-07 17:12:40 · 659 阅读 · 0 评论 -
Linux信号补充
上节我们讲了Linux信号产生前,产生中,产生后如图:我们还学习到了一个函数接口sigprocmask()int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);sigset_t * set 是修改bolck,odlset是老得block表我们还学习到了信号处理整个流程图:下面就是今天的重点1.可重入函数 我们先看以例子,就能理解什么是可重入函数当我们进行头插的时候,此时收到信号处理,信原创 2022-05-07 13:21:40 · 224 阅读 · 0 评论 -
TLB原理
二、单核场景的工作原理1、block diagram我们先看看在单核场景下,和进程切换相关的逻辑block示意图:CPU上运行了若干的用户空间的进程和内核线程,为了加快性能,CPU中往往设计了TLB和Cache这样的HW block。Cache为了更快的访问main memory中的数据和指令,而TLB是为了更快的进行地址翻译而将部分的页表内容缓存到了Translation lookasid buffer中,避免了从main memory访问页表的过程。假如不做任何的处理,那么在进程A切原创 2022-05-04 22:21:55 · 1807 阅读 · 0 评论 -
Linux进程信号
信号入门1. 生活角度的信号你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时, 你该怎么处理快递。也就是你能“识别快递” 当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那 么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不 是一定要立即执行,可以理解成“在合适的时候去取”。 在收到通知,再到你拿到快递期间,是有一个时间窗口的,在这段时间,你并没有拿到快递,但是你知 道有一个快原创 2022-04-29 09:55:50 · 617 阅读 · 0 评论 -
Linux进程间通信———共享内存
IP【前两节我们讲的都是基于文件的通信方式(匿名管道和命名管道),今天我们将System V标准的进程间通信方式在OS层面专门为进程间通信设计了一个方案,谁设计,xdm当然是计算机科学家和程序员(顶尖)。那么设计这个方案要不要给用户用,当然要给用户用,不然设计这个方案有什么意义。但是操作系统不相信任何用户,给用户提供功能的时候,采用系统调用!System V进程间通信,一定会存在专门同来通信的接口(System call)进程间通信的本质是让不同的进程看到同一块资源。System V原创 2022-04-22 18:25:51 · 1845 阅读 · 0 评论 -
Linux文件缓冲区,inode,软硬链接
1.文件缓冲区我先看一下代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<sys/types.h> #include<sys/stat.h> int main() { const char * str = "hello 标准输出\n"; write(1原创 2022-04-12 17:07:54 · 2161 阅读 · 0 评论 -
操作系统++
1.认识操作系统然而,程序不会直接和这些硬件打交道,而且每位程序员也不可能会掌握无忧的系统的细节,这样我们就不用写代码(偷笑),但是这回让计算的操作变得复杂,所以在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为操作系统,她的任务就是为了用户程序提供一个更好,更简单,更清晰的计算机模型。常见的操作系统主要有Windows,Linux,FreeBSD或OS X,这个带有图形界面的操作系统称为,图形用户界面(Graphi原创 2022-04-02 14:29:43 · 2654 阅读 · 0 评论