操作系统之进程

1.进程的概念

概念:一个跑起来的程序,就是一个进程(process);

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

 

2.句柄

系统中包含很多的软件资源(进程就是一种软件资源),写代码就需要用到一些软件资源,软件资源在操作系统内核里,在应用程序的代码中,不方便直接操作;

句柄:就好比一个遥控器(简单的整数/编号):通过系统调用借助这个句柄就可以操作软件资源了;

指针也可以视为一种句柄;

3.进程调度的属性

进程是一个重要的“软件资源”,是由操作系统内核负责管理的;

描述:讲清楚都有哪些属性特征;

组织:通过一定的数据结构,把多个这样的基本单位串起来;通过类型双向链表,来把多个PCB给串到一起(不是单纯的双向链表);

4.PCB(进程控制块)

概念:为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block);

PCB中描述进程的特征:
4.1 pid:进程的身份标识符(唯一的数字);

 

4.2 内存指针:指向了说自己的内存是哪些;

4.3 文件描述表:硬盘上的文件等其他资源;

5.进程调度相关的属性

PCB包含了很多属性,以下属性为核心属性:

1)进程的状态

就绪状态:随叫随到,进程随时准备好了去CPU上执行;

运行状态:正在和我在一起的;

阻塞状态:出差了,短时间内无法到CPU上执行了;

比如 进程在进行密集的IO操作,读写数据;

2) 优先级

先给谁排,后给谁排,给谁排多点,给谁排少点;

进程也是有优先级的;

3) 上下文

操作系统在进行进程切换的时候,就需要把进程执行的“中间状态”记录下来,保存好;

下次这个进程再上CPU上运行的时候,就可以恢复上次的状态,继续往下执行;

"存档,读档":上下文的本质上就是你存档的内容,进程的上下文,就是CPU中各个寄存器的值;

寄存器:CPU内置的存储数据的模块;保存的就是程序运行过程中的中间结果;

保存上下文,就是把这些CPU寄存器的值,记录保存到内存中;

回复上下文,就是把内存中的这些寄存器值恢复回去;

4)记账信息

操作系统,统计每个进程在CPU上占用的时间和执行的指令数目;根据这个来决定下一阶段如何进行调度;

6.内存管理

6.1 虚拟地址空间:程序中所获取到的内存地址,并非是真实的物理内存地址,而是经过了一层抽象,虚拟出来的地址。

6.2 C语言中的地址:内存地址就是虚拟的内存地址,并非真实的物理内存地址;

内存(物理上是个内存条)

内存编号:就是物理地址;

6.3 内存了不起的特性:随机访问;访问内存上的任意地址的数据,速度都极快,时间上都差不多。

正是针对该特点:数组的访问时间复杂度为O(1);

6.4 进程之间相互影响的问题(进程访问内存越界)

解决方法:进行“隔离”,引入虚拟地址内存;

MUU硬件设备防止进程访问内存越界:让多个进程使用的内存是隔离的,防止内存访问越界;

6.5 进程之间进行数据交互的问题:

需要搞一个多个进程都能访问的“公共空间”,基于这个公共空间来进行交互数据即可;

这里的通信方式/公共空间有很多具体的体现形式;

两种方式:基于文件、基于网络;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值