进程与线程

1.进程

进程是资源调度的基本单位。进程控制块PCB用于描述进程的基本信息和运行状态。创建、撤销进程,本质上都是对PCB的操作。 不同进程可并发执行。

1.1进程的三种状态及切换

就绪态:作业等待被调度
运行态:进程正在运行
阻塞态:作业正在等待资源
三种状态的切换:就绪态和运行态可双向切换,就绪态的进程通过获得CPU时间变为运行态,运行态的进程在CPU时间用完后转为就绪态。此外,运行态的进程由于发生IO请求而转为阻塞态,阻塞态由于获得等待的资源而转为就绪态。

1.2进程调度算法

先来先服务算法FCFS:非抢占式算法,按请求的顺序进行调度。这种算法有利于长作业,而不利于短作业。

短作业优先算法SJF:非抢占式算法,按估计时间最的进程优先的顺序进行调度。这种算法有利于短作业,而不利于长作业,可能会饿死。

时间片轮转算法:所有进程按请求的顺序排成一个队列,每次调度时,CPU时间分配给队首进程,该进程执行一个时间片。当时间片用完后,调度程序停止对改进程的执行,把他送往就绪队列的末尾,并把CPU时间片分配给队首的进程。

优先级调度算法:为每个进程分配一个优先级,按优先级从高到低进行调度。

1.3进程同步

概念:
临界区:对临界资源进行访问的代码段。
同步:多个进程因合作产生的直接制约关系,使得进程有一定的先后执行关系。
互斥:多个进程在同一时刻只有一个进程能进入临界区。
信号量:一个整型变量,对其执行P、V操作,控制进程对临界区的访问。
PV操作:P表示通过,V表示释放。用一个信号量与一个消息联系,当信号量为0,表示期望的消息尚未产生;当信号量为1,表示期望的消息已经存在。用P测试消息是否到达,若信号量为1,则表示消息到达,执行减1操作;若信号量为0,则表示消息未到达,进程睡眠,等待信号量大于0。用V发送消息,对信号量执行+1操作,唤醒睡眠的进程,让他完成P操作。PV操作是原语操作,不可分割。

1.4进程通信

进程通信:进程间传输信息。
为了达到进程同步这一目的,需要执行进程通信,以传输进程同步所需要的信息。

1 共享内存模式:多个进程共享一个给定的存储区,通过直接读写共享存储区的变量来交互数据,操作系统需提供共享存储区和同步互斥工具。
2 消息传递模式:分为直接通信方式(点到点发送,即进程在发送和接受消息时直接指明接受者或发送者进程ID)、间接通信方式(以信箱为媒介进行传递,可以广播)
3 管道通信:一种信息流缓冲机构,管道以先进先出FIFO方式组织数据传输。

2.线程

线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。线程可并发执行。

举例:打开一个谷歌浏览器,可打开多个网页,由于线程的并发执行,浏览器中点击一个新链接发起http请求时,浏览器还可以在其他网页上相应用户的其他信息。

3.进程与线程的区别

a.是否拥有资源
进程拥有资源,线程不拥有资源,只可以访问隶属进程的资源。

b.调度
同一进程中,线程的切换不会引起进程的切换;但从一个进程中的线程切换到另一个进程中的线程时,会引起进程的切换。

c.系统开销
创建或撤销进程时的开销(涉及分配或回收资源,如内存空间、IO设备等)远大于创建或撤销线程时的开销。切换进程时的开销(当前执行CPU的保存、新调度CPU环境的设置等)远大于切换线程时的开销(只需保存或设置寄存器内存)。

d.通信
不同的线程通过读写同一进程中的数据进行通信;不同的进程通信需要借助IPC(inter-process communication).

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值