进程的理解

1,什么是进程?

   简单来说,进程就是跑起来的程序。也可以说是一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间。

2,进程是怎样进行管理的?

进程是通过操作系统进行管理的,就是先描述出一个进程(明确出一个进程上面的一些相关属性),在组织若干个进程。

所谓的“创建进程”,就是先先创建出PCB,然后把PCB加到双向链表中;

所谓的“销毁进程”,就是找到链表上的PCB,并且从链表上删除;

所谓的“查看任务管理器”,就是遍历链表;

3,进程中PCB 里有啥?

pid(进程id) 进程的身份标识

内存指针:指明了这个进程要执行的代码/指令在内存的哪里,以及这个进程执行中依赖的数据都在哪里。

文件描述符表:程序运行过程中,要经常和文件打交道,进程没次打开一个文件,就会在文件描述符表上增加一项。

4,进程的调度是怎样进行的?(时间管理大师)

进程的调度,其实就是操作系统在考虑CPU资源如何进行进程分配......

通过PCB上以下一组属性来实现进程调度(一个系统同一时间,执行了很多的任务,这件事情就是所谓的“进程调度”),有以下属性

状态:就绪状态:随时可以去CPU上执行

           阻塞状态/睡眠状态:暂时不可以去CPU上执行

           Linux中的进程状态还有很多其他的

优先级:先给谁分配时间,后给谁分配时间,以及给谁分的多,给谁分的少....

记账信息:统计了没个进程,都分别被执行了多久,分别都执行了那些指令,分别排队了等了多久....用来给进程调度提供指导依据的。

上下文:就表示了上次进程被调度出CPU的时候,当时程序的执行状态;下次进程上CPU的时候,就可以恢复之前的状态,然后继续往下执行;

               进程被调度出CPU之前,要先把CPU中的所有的寄存器中的数据都给保存到内存中(PCB的上下文字段中),相当于存档了

               下次进程再被调度上CPU的时候,就可以从刚才的内存中恢复这些数据到寄存器中,相当于存档了

5,内存资源是如何分配的呢?(通过虚拟地址空间~~)

 所谓的虚拟地址空间可以理解为操作系统提供的一个类似“公共空间”~~

 由于操作系统上,同时运行着很多个进程,如果某个进程出现了bug,进程崩溃了,但并不会影响到其他进程,是由于“进程的独立性”来保证的,这就依赖了“虚拟地址空间”

6,进程中的通信

  操作系统中,提供的“公共空间”有很多种,并且各有特点,有的存储空间大,有的小,有的速度快,有的慢,现在最主要的两种进程通信方式为:

                                                                           文件操作

                                                                           网络操作(socket)

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值