操作系统 进程与线程

进程的概念

顺序执行的特点:1.顺序性 2.封闭性 3.可重现性

并发执行的特点:1.增强计算机处理能力和提高资源利用率 2.失去了封闭性和可重再现性 3.共享系统资源产生相互制约的关系

进程的定义:1.进程是程序的一次执行 2.进程是一个程序与其使用的数据在处理机上执行的过程 3.进程是具有独立功能的层序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位

进程的特点:动态性,并发性,独立性,异步性

进程的实质是进程实体的执行过程,进程由创建而产生,由调度而执行,由撤销而消亡。进程按照异步方式运行,独立运行,以不可预知的速度向前推进,导致不可再现性

由此可见进程实体是由程序,数据,进程控制块组成

进程控制块的作用:记录对进行运行的变化过程,并且描述进程;让一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。具体作用 1.作为独立运行基本单位的标志 2.能实现间断性运行方式 3.提供进程管理所需要的信息 4.实现与其他进程的通信 5.提供进程调度所需要的信息

进程在获得pcb之后标志其是一个能在多道程序环境下独立运行的合法的基本单位,其有过的CPU服务的权利,比如打开系统文件,请求IO设备,以及和其他进程通信;

进程控制块的信息:1.进程标识符 2.处理机状态(即处理机上下文) 3.进程调度信息 4.进程控制信息

原语操作:由若干条指令组成,用于完成一定功能的一个过程

进程控制块的组织方式:1.线性方式 2.链式方式 3.索引方式

进程的状态及转换:1.ready--running 进程被调度程序选中 2.running--blocked 等待某个事件的发生 3.running--ready 时间片用完,或者被高优先级的进程剥夺cpu使权限 4.blocked--ready 进程等待的事件发生

进程控制:创建新的进程,终止已完成的进程,进程的阻塞与挂起, 进程的挂起与激活

引起阻塞的原因:1.向系统申请资源失败 2.等待某种操作的完成(比如申请io) 3.新数据尚未到达 4.等待新任务到达   阻塞是一种主动的行为

进程不能拒绝子进程的继承权,所有的进程都具有相同的地位,不存在任何的层次结构。

引起进程创建的事件:1.用户登录 2.作业调度 3.提供服务 4.应用请求

进程创建过程:1.申请空白PCB  2.为进程分配资源 3.初始化PCB 4.如果就绪队列能接纳新进程就纳入新进程

引起进程终止的事件:1.任务完成正常结束 2.越界错 3.保护错 4.执行非法指令 5.运行超时 6.等待超时 7.IO故障 8.父进程终止 9.父进程请求 10.操作员或者系统干预(分为三类,正常结束,异常结束,外界干预)

进程终止过程:1.根据进程标识符读取进程PCB中的该进程的状态 2.终止进程的所有操作 3.如果有子孙进程,全部终止 4.拥有的所有资源归还父进程或者系统 5.将PCB从队列中移除,等待其他程序来搜集信息

程序与进程的区别:进程是程序的一次执行,是一个动态的概念。程序是完成某个特定功能的指令的有序序列,是一个静态的概念。 程序可以作为一种软件资源长期保存。进程是把程序做为它的运行实体,没有程序就没有进程。进程是临时的,是由生命期的。可以把程序看做菜谱,进程则是按照菜谱进行烹调的过程;进程不能作为资源分配和调度的单位,以及不能并发执行。可见进程的存在是需要一些资源和数据结构的支持的。

 

进程通信

共享存储器系统:相互通信进程共享某些数据结构或共享存储区,进程通过这些空间进行通信;1.基础共享数据结构的通信方式,具体的实现以及同步问题都有程序员来实现,是一种低效率,低级的方式;2.基于共享存储器的通信方式,进程通过对该共享区的读或写交换信息。由进程控制,通信前先申请空间,并把地址添加到自己的地址空间中中

管道通信系统:用于连接一个读进程和写进程按照先进先出方法实现相互通信的一个共享文件,称为管道。以字符流来进行信息传输的。需要有以下几种功能,互斥,同步,确定对方存在与否

消息传递通信:用格式化的消息为单位,将通信的数据封装在消息中,并利用错做系统提供的一组通信命令,在进程间传递消息;1.直接通信方式 2.简洁通信方式,通过共享中间体(邮箱)的方式进行消息发送和接收

线程概念和多线程模型

进程是是资源分配对象,线程是进程中一个可以执行的实体,是作为进程调度的一个独立对象。一个进程中的线程共享进程的所有资源

线程的特性:并发性,共享性,动态性,结构性

多线程模型:一个进程的结构可以划分为两个部分,对资源的管理和实际实现功能的指令序列。采用多进程模型时,并发进程之间的切换和通信均要借助于操作系统的管理进程和进程通信机制。实现的开销大。引入线程后,进程只作为系统中进行保护和资源分配的单位,允许进程拥有多个线程并发执行线程调度不用通过进程调度,多线程借助共享内存区实现通信,容易实现,减小系统开销

线程和进程的区别:1.进程是资源的拥有者 2.线程切换只需要把线程仅有的一小部分资源交换即可,切换比进程快 3.线程在微观和宏观上都能实现并发执行,提高资源利用率和系统的吞吐量  4.进程的安全性比线程的好,因为线程的独立性不高

有疑惑或者更好的解决方法的朋友,可以联系我,大家一起探讨。qq:1546431565
原文地址:https://www.cnblogs.com/mr-stn/p/9090272.html