操作系统 进程管理的重要概念理解

Rosalba ·
更新时间:2024-09-20
· 868 次阅读

操作系统图文版本1 操作系统的基本概念1.1操作系统的概念1.2操作系统的特性2 进程的管理2.1.为什么引入进程?2.2什么是进程?进程由什么组成?3.进程是如何解决问题的?4.进程和程序的区别线程调度5 进程和线程的区别?相比进程,线程有哪些好处?
学习操作系统建议,带着问题学,多思考为什么要这么设计,否则全是概念学的很抽象,文章内容结合书本和自身理解,有不正确的地方请指点. 图文版本

链接: link.

1 操作系统的基本概念 1.1操作系统的概念

计算机系统分为:硬件,操作系统,应用程序和用户。
操作系统管理各种计算机硬件,为应用程序提供基础,充当人和硬件的中介。

1.2操作系统的特性

并发和共享是操作系统最基本的特性
并发(Concurrence):是指两个或多个事件在同一时间间隔内发生。
注意区分并发和并行: 并行是指同时发生,如 你一边看书一边听歌.并发是你5分钟内只听歌,然后下一个5分钟只看书.
共享(Sharing):互斥性共享方式和同时访问方式
虚拟(Virtual):把物理上的实体变为若干个逻辑上对应物
时分复用技术: 处理器的分时共享
空分复用技术: 虚拟存储器
异步(Asynchronism):多个程序并发执行,由于资源的限制,进程的执行不是一贯到底的,而是走走停停的.

2 进程的管理 2.1.为什么引入进程?

总的来说是为了更好的实现操作系统最基本的并发和共享特性
就比如说你要理财你要了解货币和价值等概念,才能管理你的财富.
多个程序并发执行时,此时他们不在独立,具有间断性及不可再现性的特征,所以有了进程的概念,为了更好的描述和控制程序的并发执行,实现操作系统的并发性和共享性。

2.2什么是进程?进程由什么组成?

为了方便参与并发的程序(含数据)能独立运行,必须为之配置一个专门的数据结构,称为进程空值块(Process Control Block). 系统利用PCB来描述进程的基本情况和运行态,进而控制和管理进程.
由程序段,相关数据段和PCB三部分构成了进程映像(进程实体).
PCB是进程存在的唯一标志,创建和撤销进程就是创建和撤销PCB,注意,进程 映像是静态的,而进程则是动态的.

进程是描述程序程序执行过程和系统资源调度的过程,不同角度有不同定义:
1)进程是程序执行的过程
2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动.
3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位.

注:这里的系统资源不是死的,是一个动态的概念,理解成系统处理机,存储器和其他设备对某一个进程服务的时间
图片: https://uploader.shimo.im/f/QdwXGkjlZUk1XnRl.png

3.进程是如何解决问题的?

根据进程的特性,把进程分为不同的状态,规定每种状态的转换该如何转换,此时应该如何调度系统资源.在这个动态过程中调度系统资源,让系统资源利用最大化,最终使各个进程的程序得以良好运行.

4.进程和程序的区别

(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序

进程概念和程序概念最大的不同之处在于:

(1)进程是动态的,而程序是静态的。

(2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。

(3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。

线程调度

分时调度
所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间。
抢占式调度
优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。
图片: https://uploader.shimo.im/f/mBG8vym2mBbJtE3l.png
抢占式调度详解
大部分操作系统都支持多进程并发运行,现在的操作系统几乎都支持同时运行多个程序。比如:一边使用编辑器,一边使用录屏软件,同时还开着画图板,dos窗口等软件。此时,这些程序是在同时运行,”感觉这些软件好像在同一时刻运行着“。 实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。 其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的 使用率更高。

图片: https://uploader.shimo.im/f/q4XIDq2OSvXIYwga.png

5 进程和线程的区别?相比进程,线程有哪些好处?

1)调度: 线程是独立调度的基本单位,进程是拥有资源的基本单位.同一进程中,线程的切换不会引起进程的切换.不同进程中进行线程切换,会引起进程切换
2)拥有资源:进程是拥有资源的基本单位,而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问隶属进程的资源
3)并发性: 进程线程都可以并发执行,是操作系统有更好的并发性.
4)系统开销: 进程的切换要花费较大开销,涉及到CUP环境,而进程的切换只需要更改少量寄存器内容
5)地址空间和其他资源: 进程的地址空间之间相互独立,同一进程的各线程间共享进程资源,某进程内线程对其他进程不可见.
6)通信方面: 进程间通信需要 进程同步和互斥手段来辅助,以保证数据的一致性,线程之间可以直接读写进程数据段(如)

使用线程有哪些好处:
创建线程比创建进程需要的时间更少
终止线程比终止进程时间更少
切换线程比切换进程更快
线程间通信无需调用内核即可实现。同一进程的线程共享进程的数据。

创不了浩 原创文章 40获赞 9访问量 3363 关注 私信 展开阅读全文
作者:创不了浩



进程 操作系统 系统 进程管理

需要 登录 后方可回复, 如果你还没有账号请 注册新账号