第三章进程描述和控制taxue505

开发操作系统是为了给应用程序提供一个方便、安全和一致的接口。

操作系统是计算机硬件和应用程序之间的一层软件,对应用程序和工具提供支持。

目标:资源对多个应用程序是可用的;物理处理器在多个应用程序间切换以保障所有程序都在执行中;处理器和IO设备能得到充分利用。

所有现代操作系统采用的方法都是依据对应于一个或多个进程存在的应用程序执行的一种模型。

进程的几种定义:

一个正在执行中的程序;一个正在计算机上执行的程序实例;能分配给处理器并由处理器执行的实体。

假设处理器开始执行这个程序代码,且我们把这个执行实体称为进程。

在执行进程时,进程可以唯一的表征为以下元素:标示符,状态,优先级,程序计数器,内存指针,上下文数据,IO状态信息,记账信息。

上述的列表信息被存放在一个称为进程控制块的数据结构中,该控制块由操作系统创建和管理。进程控制块包含了充分的信息,这样就可以中断一个进程的执行,并且在后来恢复执行进程时就好像进程未被中断过一样。

进程控制块是操作系统能够支持多进程和提供多重处理技术的关键工具。

当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存到进程控制块中的相应位置,进程状态也被改变为其他的值,例如阻塞态或就绪态。

现代操作系统可以自由的把其他进程置为运行态,把其他进程的程序计数器和进程上下文数据加载到处理器寄存器中,这样其他进程就可以开始执行。

二、进程状态:

对一个被执行的程序,操作系统会为该程序创建一个进程或任务。

从处理器的角度看,它在指令序列中按某种顺序执行指令,这个顺序根据程序计数器的寄存器中不断变化的值来指示,程序计数器可能指向不同进程中不同部分的程序代码。

从程序自身角度看,它的执行涉及程序中的一系列指令。

1两状态进程模型,

一个进程或者正在执行,或者没有执行。

当操作系统创建一个新进程时,它将该进程以未运行态加入到系统中,操作系统指导这个进程是存在的,并且正在等待执行机会。当前正在运行的进程不时被中断,操作系统中的分派器部分将选择一个新的进程运行。

2进程的创建和终止,

进程的生存期围绕着进程的创建和终止。

可能创建进程的事件:在批处理环境中,作业提交时会创建进程;在交互环境中,当一个新用户试图登陆时会创建进程。

操作系统会负责新进程的创建。

3五状态模型

将非运行状态分为两个状态:就绪和阻塞。

运行态:该进程正在执行

就绪态:进程做好了准备,只要有机会就开始执行

阻塞/等待态:进程在某些事件发生前不能执行,如IO操作完成

新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。通常是进程控制块已经创建但还没有价值到内存中的新进程

退出态:操作系统从可执行进程组中释放出的进程,或者因为它自身停止了,或者因为某种原因被取消。

如果进程请求它不等待的某些事件,则进入阻塞态。

排队规则:有两个对立,就绪队列和阻塞队列。

进入系统的每个进程被放置在就绪队列中,当操作系统选择另一个进程运行时,就将从就绪队列中选择。对于没有优先级的方案,这可以使一个简单的先进先出队列。

当一个正在运行的进程被移出处理器时,它根据情况或者被终止,或者被防止在就绪或阻塞队列中。

最后,当一个事件发生时,所有位于阻塞队列中等待这个事件的进程都被转换到就绪队列中。

此外,拥有多个事件队列会很有效。一个事件对应一个队列。当事件发生时,相应队列中的所有进程都转换到就绪态。

4被挂起的进程,

产生缘由:当一个进程正在等待时,处理器可以转移到另一个进程,但是处理器比IO要快的多,以至于内存中所有的进程都在等待IO的情况很常见。

交换:包括把内存中某个进程的一部分或全部移到磁盘中。

交换是一个IO操作,当内存中的所有进程都处于阻塞态时,操作系统可以把其中的一个进程置于“挂起态”,并将它转移到磁盘中,内存中释放的空间可被调入的另一个进程使用。

当操作系统已经执行了一个换出操作后,它可以有两种将一个进程取到内存中的选择:可以接纳一个新近创建的进程,或调入一个以前被挂起的进程。

两个考虑:进程是否在等待一个事件(阻塞与否),进程是否已经被换出内存(挂起与否)

就绪态:进程在内存中并可以执行

阻塞态:进程在内存中并等待一个事件

阻塞/挂起态:进程在外存中并等待一个事件

就绪/挂起态:进程在外存中,但是只要被载入内存就可以执行

在虚拟内存方案中,可能会执行到只有一部分内容在内存中的进程,如果访问的进程地址不在内存中,则进程的相应部分可以被调入内存。虚拟内存的使用看上去会消除显示交换的需要,这是因为通过处理器中的存储管理硬件,任何期望的进程中的任何期望的地址都是可以移入或移出内存。

阻塞-》阻塞/挂起:如果没有就绪进程,则至少一个阻塞进程被换出,为另一个没有阻塞的进程让出空间。通常,操作系统更倾向于挂起阻塞态的进程而不是就绪态进程。

父进程可能会希望挂起一个后代进程。挂起进程的活动都是由最初请求挂起的代理请求的。

三、进程描述:

3.1操作系统的控制结构

操作系统控制计算机系统内部的事件,它为处理器执行进程而进行调度和分派,给进程分配资源,并响应用户程序的基本服务请求。因此,我们可以把操作系统视为管理系统资源的实体。

操作系统构造并维护它所管理的每个实体的信息表。

操作系统维护着四种不同类型的表:内存,IO,文件和进程。

内存表:内存的某些部分为操作系统保留,剩余的部分是进程可以使用的,保存在外存中的进程使用某种类型的虚拟内存或简单的交换机制。

IO表:操作系统使用IO表管理计算机系统中的IO设备和通道。在任何给定的时刻,一个IO设备或者是可用的,或者是已分配给某个特定的进程。

文件表:操作系统还维护着文件表,这些表提供关于文件是否存在。文件在外存中的位置、当前状态和其他属性信息。

进程表:操作系统为例管理进程必须维护进程表。内存、IO和文件时代表进程而被管理的,因此进程表中必须有对这些资源的直接或间接引用。

3.2进程控制结构

操作系统在管理和控制进程时,首先必须知道进程的位置,然后它必须知道在管理时所必须的进程属性(如进程ID、进程状态)

进程映像中的典型元素:

1)用户数据:用户空间中的可修改部分,可以包括程序数据、用户栈区域和可修改的程序

2)用户程序:将被执行的程序

3)系统栈:每个进程都有一个或多个后进先出(LIFO)系统栈,栈用于保存参数、过程调用地址和系统调用地址

4)进程控制块:操作系统控制进程所需要的数据(进程标识信息、进程状态信息、进程控制信息)

当进程互相之间进行通信时,进程标识符可用于通知操作系统某一特定通信的目标;当允许进程创建其他进程时,标识符可用于致命每个进程的父亲进程和后代进程。

进程控制块是操作系统中最重要的数据结构。每个进程控制块包含操作系统所需要的关于进程的所有信息。操作系统中的很多例程都需要访问进程控制块中的信息,直接访问这些表并不难,每个进程都有一个唯一的ID号,可用做进程控制块指针表的索引。

四、进程控制:

4.1两种执行模式

非特权态常称为用户态,这是因为用户程序通常在该模式下运行

特权态可称为系统态或内核态

使用两种模式的原因是很显然的,它可以保护操作系统和重要的操作系统表(如进程控制块)不受用户程序的干涉。在内核态下,软件具有对处理器及所有指令、寄存器和内存的控制能力

程序状态字中有一位表示执行模式,这一位应某些事件的要求而改变。在典型情况下,当用户调用一个操作系统服务或中断触发系统例程的执行时,执行模式被设置成内核态;当从系统服务返回到用户进程时,执行模式被设置为用户态。

4.2进程创建

一旦操作系统基于某种原因创建一个新进程:给新进程分配一个唯一的进程标识符-》给进程分配空间-》初始化进程控制块-》设置正确的连接-》创建或扩充其他数据结构

4.3进程切换

进程切换的功能:在某一时刻,一个正在运行的进程被中断,操作系统指定另一个进程为运行态,并把控制权交给这个进程。

进程切换可以在操作系统从当前正在运行的进程中活动控制权的任何时刻发生。

操作系统中两种类型的系统中断:

模式切换与进程切换:发生模式切换可以不改变正处于运行态的进程状态,在这种情况下,保存上下文环境和以后恢复上下文环境只需要很少的开销。但是,如果当前正在运行的进程被转换到另一个状态(就绪,阻塞等),则操作系统必须使其环境产生实质性的变化。因此,进程切换涉及状态变化,因而比模式切换需要做更多的工作。

五、操作系统的执行

操作系统与普通的计算机软件以同样的方式运行,也就是说,它也是由处理器执行的一个程序。操作系统经常释放控制权,并且依赖于处理器恢复控制权。

5.1无进程内核

操作系统可以完成保存进程环境的功能,并继续调度和分派另一个进程。

其关键点是,进程的概念仅使用于用户程序,操作系统代码作为一个在特权模式下工作的独立实体被执行。

5.2在用户进程中执行

常见的方法实际上是在用户进程的上下文中执行几乎所有操作系统软件。

其观点是,操作系统从根本上说是用户调用的一组例程,在用户进程环境中执行,用于实现各种功能。操作系统代码和数据位于共享地址空间中,被所有的用户进程共享。

当发生一个中断、陷阱或系统调用时,处理器被至于内核态,控制权交给操作系统。为了将控制权从用户程序转交给操作系统,需要保存模式想下午环境并进行模式切换,然后切换到一个操作系统例程,但此时仍然是在当前用户进程中继续执行。因此,不需要执行进程切换,仅在同一个进程中进行模式切换。如果操作系统完成其操作后,确定需要继续运行当前进程,则进行一次模式切换,在当前进程中恢复被中断的程序。如果确定需要发生进程切换二不是反话到先前执行的程序,则控制权被转换给进程切换例程。

在用户进程中执行的代码是共享的操作系统代码。基于用户态和内核态的概念,及时操作系统例程在用户进程环境中执行,用户也不能篡改或干涉操作系统例程。

在一个进程中,用户程序和操作系统程序都有可能执行。而在不同用户进程中执行的操作系统程序是相同的。

5.3基于进程的操作系统

即把操作系统作为一组系统进程来实现。主要的内核函数被组织成独立的进程,同样,还可能有一些在任何进程之外执行的程序切换代码。

把操作系统作为一组进程实现,在多处理器或多计算机环境中都是十分有用的,这时一些操作系统服务可以传送到专用处理器中执行,以提高性能。

六、安全问题

操作系统对于每个进程都关联了一套权限。这些权限规定了进程可以获取哪些资源,包括内存区域、文件和特权系统指令等。典型的是,一个进程的运行代表着一个用户拥有操作系统认证的权限。

七、UNIXSVR4进程管理

UNIX区分内存中运行就绪态和被抢占态这两个状态。

只有当进程准备从内核态移动到用户态时才可能发生抢占,进程在内核态下运行时是不会被抢占的。

进程描述:用户级上下文,寄存器上下文,系统级上下文。

进程控制:UNIX中的进程创建时通过内核系统调用fork()实现的

八、总结:

在整个生命周期中,进程总是在一些状态之间转换。最重要的状态有就绪态、运行态和阻塞态。一个就绪态进程是指当前没有执行但已做好执行准备的进程,只要操作系统调度到它就可以立即执行;运行态进程是指当前正在被处理器执行的进程,在多处理器系统中,会有多个进程处于这种状态;阻塞态进程正在等待某一事件的完成,如一次IO操作。

一个正在运行的进程可被一个在进程外发生且被处理器是被的中断事件打断,或者被执行操作系统的系统调用打断。不论哪种情况,处理器都执行一次模式切换,把控制转交给操作系统例程。操作系统在完成必须的操作后,可以恢复被中断的进程或切换到别的进程。

课后练习:

一、通常哪些事件会导致创建一个进程?

1、新作业的进入

2、父进程由于某种原因开启一个派生进程

3、一个新的服务的启动,操作系统因提供一项服务而创建。

4、交互登陆,终端用户登陆到系统。

二、抢占一个进程是什么意思?

抢占就是优先级高的进程去抢占优先级低的且正在执行的进程的资源,导致优先级低的正在运行态的进程被迫阻塞(终端)。通俗的讲就是一个进程正处在运行态执行,此时一个比他优先级高的进程启动,正处于运行态的进程被阻塞,优先级高的进程执行。

比如:B进程正在运行,而另一个具有更高优先级的A进程处于阻塞态,当处于阻塞态的进程A由于某个事件的触发而转换为就绪态,由于A优先级大于B,因此,此时中断进程B,将处理器分派给进程A。

三、什么是交换,目的是什么?

交换:就是将内存中的进程换到外存中的“挂起队列”。其目的是为了让内存有更多的可运行空间,加快执行速度。

四、挂起进程的四个特点。

1、处于外存。从内存中被换出。

2、不能自启动,除非有外部事件的触发。

3、进程不能立即执行

4、进程可能是或不是正在等待一个事件

5、为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是自己,也可以是父进程或操作系统

6、除非代理显示地命令系统进行状态转换,否则进程无法从这个状态中转移

五、对于哪类实体,操作系统为了管理它而维护其信息表?

1、进程表(进程)

2、内存表(内存使用情况、虚拟内存分配)

3、设备(I/O表,I/O使用情况)

4、文件()

六、进程控制块中的三类信息

进程控制块:进程属性的集合。

而程序、数据、栈和属性的集合称做进程映像。

作用:包含操作系统所需要的关于进程的所有信息。

进程:一段运行的程序和维持它运行所需要的数据集。

1、进程ID,表示当前进程的身份(1、进程标识信息(进程标识符、用户标识符、创建该进程的标识符))

2、进程存储空间,当前进程需要执行所需要的内存空间()

3、CPU状态(2、CPU状态信息(用户可见寄存器、控制和状态寄存器以及栈指针的信息))和进程控制信息(3、进程控制信息(调度和状态信息、进程通信、进程特权和存储管理等信息))

4、程序实体

七、为什么需要两种CPU执行模式

针对内存保护,因此某些机器指令(特权指令)只能由操作系统执行,比如I/O指令就属于特权指令。

CPU的两种模式是指**用户态(非特权态)和内核态(特权态)。

使用两种模式是为了提高程序的执行效率和信息安全,利用两种模式的优点并克服两种模式各自的缺点。(保护操作系统和重要的操作系统表(比如PCB表)不受用户程序的干涉。在内核态下,软件具有对处理器以及所有指令、寄存器和内存的控制能力。)

什么时候CPU处于内核模式呢?当用户调用一个操作系统服务或中断触发例程的执行时,执行模式被设置成内核模式;当从系统服务返回到用户进程时,执行模式被设置为用户态。(这点对Windows或者UNIX都是同样的)

八、创建一个新进程所执行的步骤。

1、分配进程ID

2、分配内存空间

3、初始化进程控制块

4、设置正确的连接,将进程加入就需队列链表中

5、创建或扩充其他数据结构

九、中断和陷阱的区别

中断是由于外部的事件触发,而陷阱是由于自身的程序运行故障所导致的中断。

十一、中断的例子

十二、模式切换和进程切换的区别。

模式切换:是指同一个进程中用户态与内核态的切换。因为他们共享内存,所以不涉及资源的重新分配,因此模式切换效率更高。并且不改变正在运行的进程的状态,在这种情况下,保存上下文环境和以后恢复上下文环境只需很少的开销。

进程切换:由于不同进程之间不同状态的切换,需要重新分配各种资源,操作系统必须使其环境产生实质性的变化。

十三、Windows操作系统内核与UNIX操作系统的执行比较

在Windows中,操作系统的执行是被当做一组系统进程来实现的。当发生中断、陷阱或系统调用时,CPU转到内核态执行,但由于操作系统是作为一组系统进程实现的,所以需进行进程切换。Windows操作系统是基于进程的操作系统。

而在UNIX中,操作系统是融合在用户进程的上下文中被执行的。当发生一个中断、陷阱或系统调用时,处理器被置于内核态,控制权转交给操作系统,为了将控制从用户进程转交给操作系统,需要保存模式上下文环境并进行模式切换,然后切换到一个操作系统例程,但此时仍然是在当前用户进程中继续执行。UNIX是基于用户进程的操作系统。

UNIX使用两类进程,系统进程和用户进程,系统进程处于内核态运行,用户进程处于用户态执行,当发生中断、异常或用户进程发出系统调用时,用户进程可进入内核态。

THE END
1.“终端”具体指的是什么?终端是网络中的专有名词。它是相对于网络节点来说的。所谓网络节点就是指路由器或交换机。也就是说https://know.cdgtw.net/522692.html
2.国家发布中华人民共和国2023年国民经济和社会发展统计公报全国电话用户总数189992万户,其中移动电话用户172660万户。移动电话普及率为122.5部/百人。固定互联网宽带接入用户[32]63631万户,比上年末增加4666万户,其中100M速率及以上的宽带接入用户[33]60136万户,增加4756万户。蜂窝物联网终端用户[34]23.32亿户https://mp.weixin.qq.com/s?__biz=MzIyOTE1NTEyMw==&mid=2708625465&idx=1&sn=870440bcea2d8cb60827bee910ac159c&chksm=ccc1f065fbb67973f502c89ecef0e23c658e27b13ea8d85b335492dfa9be1c65b4e0d67d34b1&scene=27
3.搞清外贸客户类型,“对症下药”!比如按照企业的性质,我们得先知道企业的类型有中间商和终端客户,中间商又分为两种,赚佣金和赚差。而企业内部,联系人的身份有老板,采购经理和普通采购员。理清了这些分类,就来通过下面的经验,来学习提升下自己。 1、终端客户类 首先,要明白最让这类客户关注的是什么方面? https://zhuanlan.zhihu.com/p/673661613
4.终端用户是什么意思应该怎么翻译科学技术名词科学技术名词提供终端用户,ultimate consumer;end-user,终端用户的意思,ultimate consumer;end-user的意思,终端用户的英文,ultimate consumer;end-user的翻译,终端用户的翻译,终端用户是什么意思,终端用户什么意思,ultimate consumer;end-user是什么意思,ultimate consumer;https://mkeji.911cha.com/b3NoNg==.html
5.终端用户是什么意思终端用户的解释是什么拼音:zhōng duān yòng hù 终端用户的意思 词语解释: 一般指使用这个产品的人,也是对产品要求【好工具hao86.com】最高的人。 字义分解 终读音:zhōng (1)(形)最后;末了:~点|~场|~极|~审|~霜。 (2)(名)指人死:临~。 (3)(副)终归;终于;到底:~必|~将。 https://m.hao86.com/ciyu_view_9de77143ac9de771/
6.用户终端是什么意思理想股票技术论坛用户终端是指在计算机网络中,接入网络并使用网络资源的设备或设备集合。它可以是个人电脑、移动设备(如手机、平板电脑)、智能电视等各种形式的终端设备。用户终端通过网络与服务器进行通信,实现信息传输和资源访问。用户终端在现代社会中起着至关重要的作用,它不仅提供https://www.55188.com/tag-2772129.html
7.C端是什么意思?解析消费者端客户端用户端终端用户C端,顾名思义就是Consumer端,翻译为中文就是消费者端,是指为最终用户(客户)提供服务和貌似的产品,以满足客户的个性化需求。C端可以分为消费者端、客户端、用户端和终端用户,下面将分别进行解析。 一、消费者端 消费者端指的是企业或者产品面向的最终客户,消费者搭配端,强调的是企业与消费隔离的双重属性,即消费https://www.jiandaoyun.com/fe/cdssmysjxx/
8.终端证书和终端证书口令获取公私钥终端已鉴权是什么意思终端证书和终端证书口令获取公私钥 终端已鉴权是什么意思 什么是鉴权 鉴权也叫身份认证,指验证用户是否有系统的访问权限。就很像我们经常乘坐动车的票据(对应的标识,一定的时间范围)。 认证方式 接下来介绍几种我们工作中通常用到的认证方式。 Session-Cookie 认证https://blog.51cto.com/u_16213711/10686929
9.什么是终端特权管理服务器终端权限啥意思什么是终端特权管理 组织内的权限通常分为两个等级:标准用户和管理员。域管理员通常被赋予最高级别的特权,可以修改和获得对所有标准用户计算机的访问权限,而本地管理员可以完全访问特定终端及其中的数据。通常,管理员还具有专有特权,可以以提升的特权运行某些应用程序。https://blog.csdn.net/ITmoster/article/details/126154069
10.冲正是什么意思?钱到底转没转到账冲正是什么意思?钱到底转没转到账理财 2024-11-29 61阅读 冲正是银行对用户交易可能存在失败的一种补救措施,指当用户在终端交易时显示成功但实际上交易已经超时,因此在主机的账户交易包上并未有所响应而无法确定交易是否成功,此时终端机会向主机请求取消交易流水,若交易失败则将处理结果反馈给终端,此时钱并没有到账https://cadforex.com/licai/61070.html
11.终端用户是什么意思终端用户是指直接使用产品或服务的最终消费者。终端用户是任何系统、服务或产品的最终接收者,他们是产品或服务的直接使用者。在计算机信息技术领域,终端用户指的是使用计算机或其他智能设备的人。在商业环境中,终端用户通常是指购买并使用产品或服务的普通消费者。在软件开发中,终端用户指的是使用软件应用https://zhidao.baidu.com/question/1872429086651158107.html
12.endusercertificate是什么意思end user最后用户,终端用户,直接用户,最终用户 end user to end user session端点用户到端点用户对话 multiple end user多端用户 single end user单端用户 commercial end user【计】 商业最终用户 end user to SSCP echo check端点用户到SSCP回送检验 user to user communication用户对用户通信 https://www.hujiang.com/ciku/end_user_certificate/
13.银行维护中什么意思?银行系统异常是什么意思?银行维护中什么意思? 银行系统会在持续运行一段时间之后进行系统维护,维护期间会影响客户在自助终端机进行业务办理或者功能使用。银行维护中即银行正在进行系统升级维护,需要等到系统维护完成以后才可以正常使用。 当用户到自助终端机办理业务时提示“银行维护中”而暂时无法正常办理时,可以等待银行系统维护完毕再进行办理,具http://m.tjbhnews.com/bhsb/tupian/2023/0221/105499.html