计算机是如何工作的

文章介绍了操作系统如何管理进程,包括进程的定义、PCB(进程控制块)及其属性,以及CPU的分配策略——进程调度,阐述了并行与并发的概念。此外,还提到了内存管理和进程间通信(IPC)的重要性,如管道、共享内存、文件、网络、信号量和信号等机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机是如何工作的

操作系统

在这里插入图片描述

对上:要管理好各种硬件设备
对下:要给软件提供稳定的运行环境

操作系统是个很复杂的软件,其中有一个和我们密切相关的模块,叫做进程管理~

进程

进程(process)/ 任务(task)
一个运行起来的程序就是一个进程
在这里插入图片描述
打开任务管理器,就可以看到你的进程有多少个,这里有121个进程,进程多了,就需要进程管理:所谓进程管理,其实就是分两步:
1.描述一个进程:使用结构体/类,把一个进程有哪些信息,表示出来
2.组织这些进程:使用一定的数据结构,把这些结构体/对象,放到一起

进程的结构体

结构体就是PCB(process control block),linux组织若干个进程:就是使用双向链表来把每个进程的PCB给串起来。

所谓的“创建进程”,就是先 创建出 PCB,然后把 PCB 加到双向链表中。
所谓的“销毁进程”,就是找到链表上的PCB,并且从链表上移除。
所谓的“查看任务管理器”,就是遍历链表,依次取出 链表的每个PCB,再去取出相关资料。
我们的很多代码,最终都是会落在数据结构上。

PCB的属性
  • pid
    每个进程需要唯一的身份标识。可以说是进程的身份证号。其目的:就是为了区分进程。
  • 内存指针
    指当前这个进程,使用的是内存的哪一部分,进程要跑起来,就需要消耗一定的硬件资源,比如内存,进程运行的时候,使用了哪些内存上的资源
  • 文件描述符表
    在这里插入图片描述

进程是操作系统进行资源分配的基本单位

CPU分配—进程调度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统运行起来有接近200个进程,但是电脑的CPU就6核12线程(6个干活的人,干12个人的事情),那这么多任务是怎么一起执行的?所以就有了进程调度:就是让有限的核心,能够同时执行很多任务

并行与并发
  • 并行:同一时刻,两个核心,同时执行两个进程,此时这两个进程就是并行执行的
  • 并发:一个核心,先执行进程1,执行一会后,再去执行进程2,再执行一会后,再去执行进程3,此时只要这里的切换速度足够快,看起来,进程1,2,3就是“同时”执行

此时,就可以同时执行200个任务了,通过并行+并发的方式来完成,完全是操作系统自发来控制,程序猿感知不到,所以很多时候把并行+并发统称为并发,当并发程度更高了,就可以称为高并发(比如1个核心执行1w个任务)

内存分配–内存管理

操作系统对内存资源的分配,采用的是空间模式 —— 不同进程使用内存中的不同区域,互相之间不会干扰.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程间通信(Inter Process Communication)

在这里插入图片描述

如上所述,进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的,这就是操作系统抽象出进程这一概念的初衷,这样便带来了进程之间互相具备”隔离性(Isolation)“。
但现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。进程间通信的需求就应运而生。
目前,主流操作系统提供的进程通信机制有如下:

  1. 管道
  2. 共享内存
  3. 文件
  4. 网络
  5. 信号量
  6. 信号

其中,网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值