首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
系统相关
> 详细
操作系统--进程
时间:
2016-07-13 19:40:49
阅读:
225
评论:
0
收藏:
0
[点我收藏+]
标签:
进程的定义
进程控制块PCB:作用:用来描述进程的基本情况和活动过程,进而控制和管理进程。
组成:由程序段,数据段,pcb组成
创建进程:创建进程中的PCB;撤销进程:撤销进程中的PCB
进程定义:具有独立功能的程序在一个数据集合上运行的过程,他是系统进行资源分配盘和调度的一个独立单位。
进程和程序的不同
并发性:进程拥有,程序没有。
动态性:进程是动态的,程序是静态的。
独立性和异步性。
进程基本状态和转换
图2-1 五种进程状态的转换
就绪状态 -> 运行状态:处于就绪状态的进程被调度后,获得处理机资源(分派处理机时间片),于是进程由就绪状态转换为运行状态。
运行状态 -> 就绪状态:处于运行状态的进程在时间片用完后,不得不让出处理机,从而进程由运行状态转换为就绪状态。此外,在可剥夺的操作系统中,当有更高优先级的进程就 、 绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。
运行状态 -> 阻塞状态:当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊的、由运行用户态程序调用操作系统内核过程的形式。
阻塞状态 -> 就绪状态:当进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应进程的状态由阻塞状态转换为就绪状态。
进程的创建和终止
创建过程:申请空白的PCB,填写信息-->为进程分配运行时所需的资源-->进程变为就绪状态,插入就绪队列
终止过程:等待操作系统善后处理-->将PCB清零,空间返还系统。
进程同步
基本概念:
临界资源:许多硬件资源(打印机,磁带机),进程之间采取互斥方式实现对这种资源的共享。
临界区:无论是硬件临界资源还是软件临界资源,进程都必须互斥的对它进行访问。把在每个进程中访问临界资源的那段代码称为临界区。(所以每次想要访问临界区的资源的时候,必须确保它没有被人访问)
同步机制遵循的规则:①:空闲让进②:忙则等待③:有限等待④:让权等待。
进程通信
进程通信类型:
共享存储器系统:共享某些数据结构或者共享某个存储区。这里面分为:共享数据结构(生产者消费者问题),共享存储区(划分一块内存,用于共享,由进程直接管理)
管道通信系统:由一个读进程和一个写进程实现共享。发送进程以字符流的形式将数据送入管道,接收进程从管道接收数据,利用管道进行通信。
消息传递系统:①直接通信方式:利用os直接将消息发送出去。②间接通信方式:发送和接收进程通过中间实体(邮箱)的方式进行发送和接收。这个方法不借用任何共享存储或数据结构。
客户-服务机系统:
线程
线程:作为调度和分派的基本单位。
进程和线程的比较
调度的基本单位:进程是独立调度和分配的基本单位,能独立运行,切换代价大;线程作为调度和分配的基本单位,能独立运行,切换代价小;进程的切换回导致线程的切换,而同一个进程中线程的切换对进程没有影响,但是不同进程中的线程相互切换会导致进程切换。
并发性:进程间可以并发执行,多个线程也能并发执行,一个进程的所有线程也能并发执行。
拥有资源:进程可以拥有资源,作为系统中拥有资源的一个基本单位(PCB);线程不拥有系统资源,只有本有够自己运行的资源。线程允许多个线程共享该进程的所有的资源。
进程的系统开销大,独立性高,线程开销小,独立性比较差。
线程的实现方式
内核支持线程:无论系统进程还是用户进程都是在操作系统内核下运行的。
用户级线程:在用户空间中实现的,用户级线程和内核无关。
操作系统--进程
标签:
原文地址:http://www.cnblogs.com/Kobe10/p/5666439.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
gitlab 在linux安装环境下存储地址
2021-07-29
当 Mac 未检测到外部显示器时如何修复它
2021-07-29
Ubuntu18.04安装qemu遇到问题-qemu : Depends: qemu-system (>= 1:2.11+dfsg-1ubuntu7)
2021-07-28
[Linux]Shell编程【待续】
2021-07-28
Linux系统资源查看
2021-07-27
Archlinux爬坑指南
2021-07-27
[Linux]Linux发展历程
2021-07-27
非桌面系统 (ubuntu)安装google-chrome
2021-07-27
在Ubuntu18.04系统中源码安装 gcc7.3.0
2021-07-23
Linux快捷键杂记
2021-07-22
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!