操作系统中的进程的基本概念

目录

一.进程的一些基本概念

1.什么是进程

2.进程的状态

3.PCB(进程控制块)

(1)pcb的作用

(2)pcb中包含的内容

 4.进程创建的过程

5.常见的进程调度算法

二.进程与线程的区别

三.进程间的通信方式

1.管道

2.共享内存

3.文件网络

4.信号量

5.信号


一.进程的一些基本概念

1.什么是进程

进程是操作系统对于正在运行的程序的一种抽象;并且进程是操作系统进行资源分配的基本单位。

 

2.进程的状态

  • 等待态:等待某个事件的完成;
  • 就绪态:等待系统分配处理器以便运行;
  • 运行态:占有处理器正在运行。

 

3.PCB(进程控制块)

(1)pcb的作用

在操作系统之,进程也是需要某种数据结构(常见为双向链表)来进行管理;所以,在运行一个程序的时候,首先需要给该进程分配一些资源(如内存,网络,硬盘等),然后进程启动之后,会创建一个PCB,之后操作系统根据pcb来管理进程,来实现一些基本的操作如增删改查。

(2)pcb中包含的内容

  • pid:操作系统为每个进程分配的一个身份标识,其次一个系统中的pid是唯一的。
  • 内存指针:标识进程占用的内存的位置。
  • 资源清单:设备资源(如打印机等)和文件资源。
  • 优先级
  • 一些其他调度信息:如进程执行的时间,执行了哪些代码
  • 进程上下文:进程切换出去时的环境为上文,恢复执行时的环境为下文;当切换出去时需要保存上文;恢复执行环境时,需要读取之前保存的信息到下文。

 

 4.进程创建的过程

1)申请空白PCB,为新进程申请获得唯一数字标识符,并从PCB集合中索要一个空白PCB。
2)为新进程分配其运行所需的资源。
3)初始化进程控制块。
4)将新进程插入到就绪队列中

 

5.常见的进程调度算法

  • 时间片轮转算法:相当于是对每个进程分配一个时间片,当前的时间片消耗完就会进入到队尾等待重新获取时间片,直到该任务执行结束。时间片轮转从宏观看是并发,微观上是并行。
  • 先来先服务算法:根据时间先后进行执行。
  • 高优先级算法:优先级高的进程先执行,优先级大概=进程优先级信息+进程等待时间。
  • 短作业优先算法:某个任务执行的时间越短,就优先进行执行。
  • 抢占式和非抢占式:抢占式指的是当某个优先级高的进程加入,可能这时候优先级低的进程正在执行,这时候就会暂停优先级低的任务,让出cpu来让优先级高的进程先执行;非抢占式就是某个正在的进程必须执行往,有进程告诉操作系统,才可以调度之后的进程。抢占式适用于一些实时性高的系统。

 

二.进程与线程的区别

1.进程包含线程,一个进程中至少有一个线程

2.进程是系统分配资源的最小单位,线程是cpu调度的最小单位

3.进程状态的改变比线程改变状态花费的时间更多;所以创建一个线程比创建一个进程的时间少

4.每个进程都有自己的独立的虚拟地址空间,对于一个进程中的多个线程来说,可以共享该进程的内存空间

5.一个进程挂了,不会影响其他的进程,一个进程中的一个线程挂了,可能会导致整个进程挂掉;例如一个线程申请的内存超过了该进程内存,就可能导致该情况

 

三.进程间的通信方式

1.管道

由于进程是操作系统分配资源的最小单位,且各个进程之间是不能感受到对方的存在,所以进程之间是相互隔离的,但是有时候我们还需要进程之间进行通信,那么就需要一些方式来进行解决。

常见的通信方式有如下:

管道pipe:管道是⼀种半双⼯的通信⽅式,数据只能单向流动,⽽且只能在具有亲缘关系的进程间使⽤。进程的亲缘关系通常是指父子进程关系。

命名管道FIFO:有名管道也是半双⼯的通信⽅式,但是它允许⽆亲缘关系进程间的通信。

消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载⽆格式字节流以及缓冲区⼤⼩受限等缺点。

 

2.共享内存

共享内存:共享内存就是映射⼀段能被其他进程所访问的内存,这段共享内存由⼀个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信⽅式运⾏效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。

 

3.文件网络

文件网络: 套接字Socket,套解⼝也是⼀种进程间通信机制,与其他通信机制不同的是,它可⽤于不同及其间的进程通信。

 

4.信号量

信号量:信号量是⼀个计数器,可以⽤来控制多个进程对共享资源的访问。它常作为⼀种锁机制,防⽌某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同⼀进程内不同线程之间的同步手段。

 

5.信号

信号:信号是⼀种⽐较复杂的通信⽅式,⽤于通知接收进程某个事件已经发生。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值