操作系统之哲学原理 进程

操作系统之哲学原理     进程


进程管理,内存管理和文件管理是操作系统的三大核心功能。

一个程序加载到内存后就变为进程:进程= 程序 + 执行,为了提高CPU利用率,人们想起将多个程序加载到计算机里,并发执行。进程让让每个用户感觉到自己独占CPU。


进程模型


从物理内存的分配来看,每个进程占用一片内存空间。由于在任意时刻,CPU只能执行一条指令,因此任意时刻在CPU上执行的进程只有一个,而到底执行哪条指令由物理程序计算器来决定,也就是说,所有进程公用一个程序计数器。

从逻辑层面来看,每个进程有着自己的计数器,记录其下一条指令所在位置。逻辑上说,程序计数器可以有很多个。

从时间上看每个进程都必须往前推进,在运行一定时间后,进程都该完成了一定的工作量,即每次进程返回,它都处在上次返回点之后。


进程模型的实现

首先,给进程分配合适的内存。由于多个进程可能同时并存,因此进程的储存需要考虑如何让多个进程共享同一个物理内存而不发生冲突,操作系统解决这个问题的手段是内存管理。

通过进程调度,决定在什么时候让什么进程使用CPU


多道编程的好处

随着进程数量的增加,也就是多道编程的度的增加,CPU的利用率将逐步提升,但提升的幅度则逐步降低,直到某个临界点为止。这个临界点是多道编程的极限。

多道编程更大的好处是改善系统响应时间,及用户等待时间。


进程的层次结构

一个进程在执行过程中通过系统的调用创建新的进程(子进程),这样子子孙孙创建下去就形成了所谓的进程树。UNIX称这个进程树里的所有进程为一个进程组,从而形成一个层次架构。

windows没有进程组的概念,而是所有进程均地位平等。


进程的状态

执行,阻塞,就绪


进程与地址空间

进程空间也称地址空间。地址空间就是进程要有的所有资源。

地址空间的特点是被动的,只提供支持。打个比方,有个舞台,那些道具和舞台就是地址空间,这些空间本身不能发生任何动作。做动作的只是演员,而每一个演员就是一个线程。

进程与地址空间研究的主要内容是如何让多个进程空间共享一个物理内存。


进程管理

当一个进程产生时,操作系统需要为其创造记录。操作系统用于维护进程记录的结构就是进程表或是进程控制块(PCB)。它们中存放的就是有关该进程相关的资料。信息应当包括寄存器,程序计数器,状态字,栈指针,优先级,进程id,信号,创建时间等等。而采纳的数据结构主要是线性表,链表和结构(struct),也用树和图(网络)结构。

这个进程表保存在操作系统的内核里。

psw,状态字寄存器。包括允许中断标志位,跟踪标志位。


进程的创建过程

进程创建在不同的操作系统方法也不是一样的。UNIX将进程创建分为两个步骤:第一步是fork,创建与自己完全一样的新进程;第二步是exec,将新的进程的地址空间用另一个程序的内容覆盖,然后跳转到新程序的起始地址,从而完成新程序的启动。而windows使用creatprocess这个系统调用就可以完成进程的创建。在调用该函数时我们把欲执行的程序名称作为参数传递过来,创建新的页表,而不需要复制别的进程。

UNIX的创建过程要灵活一些,因为我们既可以自我复制,也可以启动新的程序。而自我复制在很多情况下都是有用的。例如,web服务器在没收到一个用户请求后,就创建新的一模一样的进程来服务用户请求。


进程管理要处理的问题:公平与效率


进程的缺陷

它只能一个时间做一件事,且如果在执行的过程中阻塞,整个进程就将挂起而无法继续执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值