浅谈操作系统

本文详细介绍了操作系统的概念、功能以及进程管理。操作系统作为资源管理软件,负责管理和调度硬件设备及软件环境。进程是操作系统资源分配的基本单位,其管理和调度包括PCB(进程控制块)信息、进程状态、并发执行与并行执行的差异,以及线程的引入以提升效率。虚拟地址空间确保了进程间的内存隔离,而线程则降低了资源分配的成本,提高了执行效率。
摘要由CSDN通过智能技术生成

1. 操作系统

1.1 概念

操作系统是一组做计算机资源管理的软件的统称。目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等

1.2 功能

  1. 管理各种硬件设备
  2. 给各种软件提供稳定的运行环境

1.3 进程

类似一个静态的".exe"文件,
在这里插入图片描述
当我们双击运行时,操作系统就会把这个可执行文件中的关键信息加载到内存中,并运行其中的代码,形成进程.
在这里插入图片描述
例如任务管理器中的显示,都是进程.
在操作系统内部,进程又是操作系统进行资源分配的基本单位。

2.操作系统的进程管理

进程管理是操作系统内核的基本功能

  1. 先描述,使用结构体,描述进程的特征
  2. 在组织,若干个进程使用一些数据结构,把很多描述进程的信息放到一起,方便增删改查

操作系统里面主要是通过 C/C++ 来实现对一个进程的描述,所以这里的描述就是用:结构体 来描述的,结构体功能更简单。操作系统当中描述进程的结构体,叫做:PCB(进程控制块)

2.1 PCB当中的信息

  1. pid(进程id):进程的身份标识。
  2. 内存指针: 描述了进程中要执行的代码在内存的哪里,也描述了进程中的数据在内存的哪里
  3. 文件描述符表:表示了当前进程都打开了哪些文件。每次打开一个文件,就会在文件描述符表上多增加一项。

2.2 进程的调度

当前计算机CPU的能力是有限度的,而进程数量又非常多,所以操作系统要做到尽可能的公平,对每个进程分配资源,完成调度.

进程调度的信息:
1.进程的优先级
先给谁分配时间,后给谁分配时间。以及给谁分配的多,给谁分配的少。
2.进程的状态
描述了当前的进程接下来应该怎么调度。就绪:随时可以到 CPU 上去执行。阻塞/睡眠 状态:暂时不可以去 CPU 上执行。
3.进程的上下文
表示上次进程被调度出 CPU 的时候,当时程序的状态,下次进程进入 CPU 的时候,就恢复到之前的状态,然后继续往下执行。 就类似于存档和读档。
4.进程的记账信息
统计每个进程都分别被执行了多久,分别都执行来哪些指令,分别都排队等了多久,给进程调度提供指导依据。

2.3 并发执行与并行执行

2.3.1 并发执行

微观上,一个 CPU 先执行一会儿任务1,再执行任务2,再执行任务3这样来循环。宏观上来看,切换的快,就好像很多任务在同时执行。

2.3.1 并行执行

CPU的多个核心同时执行不同的进程

3. 进程的虚拟地址空间

隔离性
我们期待每个进程拥有自己的内存空间,不相互打扰. 但是在C中的解引用操作时,很可能将指针指向错误的内存,

为了让各个进程之间不要相互干扰,操作系统就引入了"虚拟地址空间"这样的概念每个进程都只能访问到自己的地址空间,相互之间不会有影响了,哪怕你指针指错,操作系统也能及时发现,不会影响到其他的进程.

进程间通信
运用公共资源来完成进程间的通信.

4. 线程

理论上 进程已经可以运用好CPU的多核条件来完成并发操作
但是在面对需要进程频繁创建销毁的情况时,显然低效.

创建/销毁进程,本身就是一个比较低效的操作:
1.创建PCB
2.分配系统资源(尤其是内存资源)分配资源,就比较消耗时间了
3.把 PCB加入到内核的双向链表中

此时我们就引入了多线程 线程就相当于一条条生产线
1.进程包含线程
2.一个线程可以拥有一个PCB,故而一个进程拥有多个线程,就拥有了多个PCB.
3.同一个进程中的线程,共用一份资源.

因此,创建线程只需要:
1.创建PCB
2.把 PCB加入到内核的链表中

使用多线程是能提高效率,前提是多核资源是充分的.随着线程数增加,CPU核心逐渐都被吃满了,此时再增加线程,也就没有意义了.

但是多个线程访问同一个变量时,可能会发生冲突,同一个进程中的线程会相互影响,一个线程的崩溃,可能会使整个进程崩溃.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值