淘宝网站建设概要,wordpress插件汉化包,做废旧回收哪个网站好,化工网站模板一、#x1f49b; 操作系统#xff08;浅浅概念#xff09;#xff1a;是用来搞管理软件的 1.对下,要管理各种硬件设备 2.对上,要给应用程序提供一个稳定的运行环境 二、#x1f499; 进程#xff1a;正在运行的程序#xff0c;假如程序没有运行就不叫程序#xff0c;…一、 操作系统浅浅概念是用来搞管理软件的 1.对下,要管理各种硬件设备 2.对上,要给应用程序提供一个稳定的运行环境 二、 进程正在运行的程序假如程序没有运行就不叫程序同一个程序运行多次假如你开了三个QQ那也就是产生了三个进程。 我们说的程序往往是可执行文件exe只是硬盘中的一个静态的东西只有你双击程序此时操作系统就会把可执行文件的数据和指令加载到内存中并且让cpu去执行这里的指令完成一系列相关工作运行起来动态的进程。 进程能够干活说明进程能够消耗一定的资源可执行程序只是占据了硬盘空间而进程会消耗cpu资源内存资源硬盘网路带宽。 这里我就要说一手常常兄弟们会想一个问题我假如下那种小电影软件 但是不安装就是玩会不会有病毒啥的只要他不成为进程就没有任何问题。 ♓️ 进程也是系统分配硬件资源的基本单位如同发物资按着一家一户这么发 一台运行的计算机大概率包含很多进程一旦东西多了就要考虑管理 在数量多的情况下1.先描述会使用一个结构体C语言里面的如同java中低配的类没有方法啥的操作系统主要是c/c来实现来记录进程里面的各个属性 这个结构体叫做PCB-(进程控制块) 2.组织会使用一系列数据结构多为双向链表,把多个进程进行一个有效的组织随时去遍历查找汇总数据 一旦使用双向链表这样的方式来进行组织的时候 (a)查看进程的链表本质就是遍历该链表 (b)创建一个进程就是创建一个PCB结构体并且插入到链表上。 (c)销毁一个进程就是把这个PCB结构体从链表中删除。 三、 PCB中大概有哪些消息 1.♈️PID进程的标识同一时刻每个进程的PID一定都是不同的正是我们之前在MySQL使用中遇到的没有PID的文件。 2.♉️内存指针 表示了该进程对应的内存资源是如何的 内存资源中要有什么捏-最主要存储的就是从exe可执行文件中可载过来的指令和数据 指令二进制的指令都是程序猿开发这个程序的时候最终编译生成的结果也就是程序猿写的代码逻辑进一步的再去交给cpu执行 数据执行的这些指令会依赖一些数据 3.♊️文件描述表 和硬盘资源有关了硬盘是硬件应用程序一般没法直接接触到硬件层 实际操作系统抽象成文件这样的概念程序操作的是文件文件实际上是存储在硬盘上的每个进程就会有一个文件描述符来记录当前这个进程正在使用哪些文件 也就是说 程序-文件-硬盘 操作系统打开一个文件就会产生一个文件描述符就像文件的身份标识一样当然只在进程内部生效啦同时会使用文件描述表类似于数组把文件描述符组织起来。 补充进程需要在cpu上执行指令每个进程要是想完成任务都要在cpu上一样执行 把进程比喻成演员那么cpu就是表演场地早期的cpu只有一个舞台一个时间上只允许一个剧组在上面拍戏。 但是现在cpu 8核 16核···但是我们要处理的事务几十个上百个 ♐️并行同一时刻两个进程同时运行在两个cpu的逻辑核心上 ♒️并发两个进程在同一个舞台上轮着上由于cpu切换进程极快围观上这俩进程串行执行的宏观上看起来他俩就是同时进行的 操作系统在调度这些进程的时候可能是按照并行的方式来调度也可能是按照并发的方式来调度在应用程序这一层感知不到的 系统中内核能感知到 由于感知不到哪种方式调度这两种调度方式宏观上体现效果都是一样的通常用并发代替并发和并行面试官说啥是啥舔就完事了 4. ♋️PCB中关于进程调度相关的属性这些属性也就描述了进程对应的cpu资源使用情况 1♌️状态 就绪状态—— 一个进程已经随时做好在cpu上执行的准备 阻塞状态/睡眠状态 因为某些原因无法准备中。 状态之间都是相互转化的实际上进程的状态有很多种但是这两种事最重要的。 2♍️优先级 系统给进程进行调度的时候也不完全是公平的也会根据优先级不同来决定时间分配的权衡就可以把系统资源调配给更重要的进程上了。例子有钱帅舔 3♎️ 上下文 这些进程是轮着上的一次运行不完就需要保证下次cpu运行的时候能够从上次运行到的位置继续往后运行。游戏存档读档 4♏️记账信息相当于统计信息 会统计每个进程在cpu上执行了多久执行了多少指令了是对于进程调度的一个兜底。 上述这些属性主要是有一个直观认识-认识进程调度大概是怎样的后续编码有一定影响每个进程都需要一定的内存资源。 按照上述直接分配物理内存的模型此时假如一个指针越界指向其他位置很可能会影响别的进程的执行非常影响系统的稳定性。 后来操作系统引入了“虚拟地址空间”这样的概念有效解决上述的问题 ⛎ 虚拟地址并非物理内存中真实存在的地址而只是在该进程内存在不同的进程可以存相同的虚拟地址但实际上对应得到的是不同的物理地址虚拟地址和物理地址操作系统可以灵活切换 这样的设定之后每个进程的有效的虚拟地址都是固定范围进程使用虚拟地址的内存都需要操作系统进行转换成物理地址这个转换的过程中就可以针对虚拟地址是否有效做出校验 虚拟地址和物理地址的区别就像是 1班有王强 2班有王强区分这两个王强要是区分就要看年纪花名册物理地址呗 虚拟空间的加持下进程有了独立性每个进程有自己的虚拟空间-一个进程无法直接访问或者修改其他进程虚拟空间独化了系统的独立性 假如也要进程之间产生写配合联系 进程间通信进程隔离性的基础上开个口子有限制的相互影响在进程隔离之间开个口本质相同找一个公共区域就像是做小区核酸借助公共区域来完成数据的交换 以后介绍本章先到这里 最近会更新一些基本的知识和算法打算冲一下蓝桥杯加油啦