学习篇 --- Linux & Windows 操作系统
记录操作系统底层知识
程序猿的温柔香
一个懂技术,也懂浪漫的程序猿
展开
-
面试高频考点 ---- 操作系统知识思维导图
操作系统知识原创 2020-06-03 20:10:32 · 476 阅读 · 7 评论 -
形象理解进程
进程是个什么东西?课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体。比方说,你现在用某个浏览器看博客,这个浏览器就相当于一个进程,因为它在占用系统 CPU 的时间和内存,这个比喻不是很恰到,但是可以这样理解~~我相信学习到后面会有更加深刻的理解~!!描述进程-PCB进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的...原创 2019-05-01 12:17:55 · 2559 阅读 · 0 评论 -
进程的调度算法
调度算法=============================================================这篇文章总结的是调度算法 ~~好!!!问题来了,啥是调度算法?所谓调度算法就是:操作系统进行选择性的把资源分配给进程,通俗来讲就是由于系统资源有限,不能照顾到每一个进程,所以要按照一定的原则来进行资源分配。具体是按照什么原则,,,,,下面会讲!!!这样做的目的是...原创 2019-04-25 18:08:06 · 490 阅读 · 0 评论 -
线程和进程的区别
线程和进程的区别之前谈到进程,进程可以理解为被加载到内存的程序,所以进程是系统进行资源分配的基本单位,而线程是依赖于进程存在的,一个进程中可以包含多个线程,线程也可以理解为进程内部的控制序列,所以线程是 CPU 调度的基本单位,通过 PCB 调度程序的运行通常我们所说的 PCB 是进程,但是在 Linux 操作系统下,线程变的更加轻量化,称为轻量级进程,进程也就变成了线程组另外进程拥有自己的...原创 2019-06-14 18:21:37 · 228 阅读 · 0 评论 -
进程间 5 种通信方式
进程间通信介绍为啥要进程间通信?进程之前具有独立性每个进程有自己的虚拟地址空间,进程A并不知道进程B的虚拟地址空间中的数据内容;进程间通信目的数据传输:一个进程 需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件(进程终止时要通知父进程)进程间通信需要“介质”两个进程都可以访问到的公共资...原创 2019-06-16 00:04:18 · 283 阅读 · 0 评论 -
互斥锁和同步变量实现线程安全模型
临界资源 :多个线程访问的公共资源;临界区:访问临界资源的代码在临界区中使用互斥机制就能解决线程不安全的问题为什么要有同步互斥:线程都是抢占式执行;互斥通过加锁的方式让一个线程只能执行一次临界区互斥锁先加锁 pthread_mutex_init(&mutex,MULL)执行临界区代码释放锁 pthread_mutex_destroy(&mutex)互斥锁虽然...原创 2019-06-15 13:20:55 · 289 阅读 · 0 评论 -
死锁的四个必要条件以及如何避免死锁
死锁概念如果一个进程集合中的每一个进程都在等待 只能由该进程集合中的其他进程才能引发的事件,那该进程集合就是死锁的;打个比方,一个女孩子手里有个洋娃娃,一个男孩子手里有个小汽车,女孩子想玩汽车,但又不想把洋娃娃让给男孩子,男孩子想玩洋娃娃,但也不想把汽车给女孩子玩,他们两个就这样僵持阻塞下去…这种情况就是资源死锁,洋娃娃和汽车就相当于是一个资源,而这个资源还是不可抢占资源,男女孩子相当于两个进程...原创 2019-05-26 12:34:07 · 2442 阅读 · 0 评论 -
利用信号量实现线程安全模型
通过互斥锁和条件变量实现线程间的同步与互斥https://blog.csdn.net/qq_43763344/article/details/91580958但是一个程序一旦上锁效率就特别低,而且有可能出现死锁的情况,所以一般情况下都是使用信号量来实现同步与互斥使用信号量来实现同步互斥信号量有 system V 信号量和 POSIX 信号量这里我们使用 POSIX 信号量,因为它具有可移...原创 2020-02-14 18:54:54 · 237 阅读 · 0 评论 -
进程信号
信号的特点1.信号有很多种2.不同的信号会有不同的处理方式3.在信号发生之前,要知道如何去处理信号信号的作用信号的产生方式【重点】键盘按键产生:trl c ->2;ctrl z ->19;ctrl \ ->3硬件条件产生:MMU产生的信号 -》11段错误,MMU负责从虚拟地址翻译成物理地址,如果发现虚拟地址非法,MMU硬件设备就会告诉操作系统这个情况,由操作系统给...原创 2019-06-11 14:20:47 · 815 阅读 · 0 评论 -
线程池模型案列
线程是一种池化技术,也是线程的一种使用模式模型创建一大堆线程和一个安全队列 , 循环从队列中获取任务对象,获取到任务对象后,执行任务对象中的任务接口.线程池线程的数量取决于可用的并发处理器、处理器内核、内存、网络 sockets 等的数量由于线程池当中的线程都是采用同一个入口函数,所以入口函数当中的功能一致,怎么处理队列当中不同的任务需求?可以将处理函数设置为函数指针,将处理任务的函数指...原创 2020-02-14 17:20:19 · 135 阅读 · 0 评论 -
IO 多路复用,epoll 工作原理
IO多路转接模型 select poll epoll对大量描述符进行事件监控,监控事件描述符是否 (可读,可写,异常)select用户定义描述符的事件监控集合 fd_set,用户将需要监控的描述符添加到集合中将集合拷贝到内核中进行监控,在内核中对所有描述符进行轮询遍历,判断是否有关心的事假就绪假设有描述符就绪,从监控集合中,将未就绪的描述符移除,然后调用返回(返回给用户就绪描述符集合)...原创 2020-02-26 23:09:40 · 472 阅读 · 0 评论 -
虚拟内存管理(一)
虚拟内存虚拟内存是计算机管理内存的一种技术,由于内存空间无法容纳程序大小,所以就把硬盘的一部分拿出来当做内存使用。基本思想:每个程序拥有自己的地址空间,这个空间被分割成多个块,每一块称作一页或页面,每一页都有连续的地址范围。分页:IBM360有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都会进行密钥...原创 2019-05-21 12:51:27 · 1257 阅读 · 0 评论 -
虚拟内存管理(二)
上一篇文章说的是:内存管理的相关细节 https://blog.csdn.net/qq_43763344/article/details/90380014这篇主要讲的是:虚拟内存的管理前面我们知道一个进程被划分为多个页,但是这些页是必须要全部加载到内存中才会运行,但是虚拟存储就是:不需要所有的页都在内存中,是因为在内存中可以取出下一条指令所在的页及访问下一个数据单元所在的块。当然有人会问,如...原创 2019-10-21 18:38:52 · 284 阅读 · 0 评论 -
进程创建(fork原理)
fork创建子进程的一些细节,先稍微做一个总结调用一次,两个返回值,是由于系统调用fork函数会创建子进程,(如果创建失败返回-1)如果创建成功则,子进程返回值为0,父进程的返回值是子进程的pid(进程标识符);这样就可以通过父子进程的返回值来判断到底是子进程还是父进程;不过有两个函数可以直接获取当前进程的 pid 那就是 getpid() 和getppid (),后者是获取父进程的pid;子...原创 2019-06-01 14:18:40 · 4091 阅读 · 0 评论 -
进程控制之进程等待
进程等待什么是进程等待?为什么需要等待?等待的方式?waitpid 函数等待获取子进程status如果不等待会发什么?僵尸进程产生原因?什么是进程等待?父进程等待子进程退出之后获取它的退出信息并且回收其内存资源;这里的退出信息分为正常退出和异常退出;为什么需要等待?子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏;另外,进程一旦变成僵尸状态,那就刀枪不入,“...原创 2019-06-03 11:03:48 · 318 阅读 · 0 评论 -
进程控制之进程替换
替换原理一般情况下,用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),但是我不想让你和父进程执行相同的程序,所以子进程就要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,相当于我不要父进程给我遗传下的东西,让一个新的数据填充在我的体内。。。注意的是:调用exec并不创...原创 2019-06-04 14:45:41 · 370 阅读 · 0 评论 -
进程控制之进程终止
进程退出场景代码运行完毕,结果正确代码运行完毕,结果不正确代码异常终止正常终止(可以通过 echo $? 查看进程退出码)从 main 中 return 返回调用exit:exit(0)表示正常退出,exit(非零)表示异常退出,功能是关闭所有文件终止正在执行的进程;_exit:直接使进程终止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构异常退出:ctrl + ...原创 2019-06-01 17:25:31 · 195 阅读 · 0 评论 -
操作系统思维导图
原创 2019-10-19 16:43:07 · 612 阅读 · 1 评论 -
基础 IO、系统调用接口
文件相关系统调用接口int open (const char* pathname,int flags,mode_t mode)pathname:文件路径名flags: 选项标志 ,也可以理解为打开方式,主要有以下6种定义,下面三种必选一(1)只读 O_RDONLY (2)只写 O_WRONLY (3)可读可写 O_RDWR以下三种打开方式: 可选项可不选(1) O_CREAT ...原创 2019-05-05 22:40:21 · 295 阅读 · 0 评论 -
linux根目录下的文件含义
centos7 linux目录下的19个文件简要介绍有一句话叫“在linux系统下,一切皆文件”linux下的目录我们有必要多多了解了解~~!!!文章目录centos7 linux目录下的19个文件简要介绍bin --二进制应用程序dev --设备 (device) 文件home --本地用户主目录lib64 --开机时常用的动态链接库mnt --挂载 (mounted) 文件系统proc ...原创 2019-04-28 22:45:12 · 899 阅读 · 0 评论 -
环境变量相关的设置和使用
环境变量概念:一般指的是操作系统中指定操作系统运行环境下的一些参数,比方说:临 时文件夹或者系统文件夹的位置,环境变量的作用设置参数:相当于给系统或者应用软件设置一些参数.软件共用/系统运行:如果一个软件在Windows下安装,那么在linux中是不能运行的。。。我小时候就有过一次案例,由于不会下载游戏,所以就去网吧去拷贝游戏,我带着个优盘,把网吧桌面的所有游戏复制粘贴,回去之后却发...原创 2019-04-26 13:41:21 · 584 阅读 · 0 评论 -
操作系统(文件系统)
文件是进程创建的信息逻辑单元文件类型:字符特殊文件(输入输出,用于io类设备)、块特殊文件、普通文件、目录(管理文件系统结构的系统文件)普通文件是包含用户信息的文件ASCII 文件:可以显示和打印,可以用任何文本编辑器编辑,二进制文件:无法理解的混乱字符,文件系统布局文件系统存放在磁盘中,磁盘划分为多个分区,每个分区有一个独立的文件系统。磁盘的0号扇区叫主引导记录(MBM) 用来引...原创 2019-05-21 14:04:29 · 591 阅读 · 0 评论 -
现代操作系统(引论)
现代操作系统引论操作系统的两大主要作用是什么?列举常用的 9 种操作系统应用分时系统和多道程序系统的区别?主存与高速缓存CPU 、DMA 、多道程序内核态 vs 用户态陷阱指令进程表调用 fork exec unlink 失败的条件?操作系统的两大主要作用是什么?管理硬件为用户提供一个简单的计算机模型由于用户直接和硬件打交道是一件很困难的事,所以就由操作系统为用户提供一个资源集的清晰抽...原创 2019-05-19 16:14:29 · 756 阅读 · 0 评论