zoukankan      html  css  js  c++  java
  • 第四篇:进程

    1、进程概论:

        进程管理,内存管理,文件管理是操作系统的三大核心功能。什么是进程?进展中的程序。或者说,就是一个程序被加载到内存后就变成1进程。

    进程=程序+执行

    2、进程模型:

        每个进程占用一片内存空间,从这点上来说,进程就是1内存的某片内存空间。由于在任一时刻,cpu只能执行一条指令,因此任意时刻在cpu上执行的进程只有一个,而到底执行哪条指令由程序物理程序计数器指定。也就是说,在屋里层面上,所有进程公用一个程序计数器。

        而从逻辑层面上来看,每个进程可以执行,也可以暂时挂起让别的进程执行,之后又可以接着执行。这样,进程就需要某种办法记住每次挂起时自己所处的执行位置,这样才能在下次执行时从正确的地点开始。因此,从这个角看,每个进程都有着自己的计数器,记录每一条1指令所在的位置。

    3、进程的产生与消亡

        一个进程1可以在1执行过程中通过系统调用创建新的进程,这个创建的进程就称为子进程,而创建的子进程的进程称为父进程。紫禁城又可以创建子进程,这样子子孙孙创建下去就形成了所谓的进程数。UNIX成这个进程树里面的所有进程为一个进程组,进程组里面的进程分布在不同的层次上,从而形成一个层次架构。

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

    4、进程的状态:

        进程可以在CPU上执行,也可以处于挂起状态。显然,一个进程至少有这么两种状态。那么进程挂起有哪些原因?

        首先是一个进程在运行过程中执行了有种阻塞操作,如读写磁盘。由于阻塞操作需要等待结果后才能继续执行,因此操作系统将这个进程挂起,让其它进程运转。另外一种情况是一个进程执行的时间太长了,为了公平,操作系统将其挂起,让其他进程也有机会执行。

        这两种挂起的原因十分不同:第一种挂起的是进程自身的原因。这个时候即使把Cpu的控制权交给他,他也无法执行。因此进程分为3种状态:执行,阻塞,就绪!

    在这三种状态之间进行各种转化。

    执行-》就绪

    执行-》阻塞

    阻塞-》就绪

    就绪-》执行

    阻塞-》执行

    就绪-》阻塞

        问题是上面的转换并不是都可以发生。

    (1)一个进程在执行时,因为运行时间太长,操作系统可以将其挂起,转换为就绪状态,因此第一种转换是可以的。

    (2)在进程执行过程中如果执行了某种阻塞操作1,则进入阻塞状态。因此,第二中也是可以的。

    (3)一个阻塞的进程在其等待的资源到位后,就可以随时执行,进入就绪状态,因此第三种也是可行的。

    (4)就绪进程1由操作系统调到CPU上就可以进入执行状态,第四种也是可行的。

    (5)不可行,阻塞进程即使交给CPU也是无法运行的。

    (6)不可行,一个进程1只有在执行时才能被阻塞。

    5、进程与地址空间:

        进程空间也被称为地址空间。简单来说,地址空间就是进程要用的所有资源。

    于是所有资源就构成了状态的划分。由于不可能有两个进程状态完全一样,因此,每个进程对应计算机的一种状态,而计算机状态就是所有存储单元的内容。

        进程与地址空间研究的内容就是如何让多个进程空间共享一个物理内存。具体来说,就是高效,安全的共享这篇物理内存。

    6、进程管理:

        (1)进程的创建过程:

    1、分配进程控制块。2、初始化及其寄存器。3、初始化页表‘4、将程序代码从磁盘读进内存。5、将处理器状态设置为’用户态‘(6)跳转到程序的启示位置。

  • 相关阅读:
    【Java】《Java程序设计基础教程》第三章学习
    【Python】编程小白的第一本python(最基本的魔法函数)
    【Python】编程小白的第一本python(基础中的基础)
    bootstrap中的col-xs-*,col-sm-*,col-md-* 关系
    java基础面试题总结
    人生中第一次面试(阿里一面)
    阿里云服务器ip:端口号无法访问
    redis基本指令
    linux基本指令
    centos安装redis
  • 原文地址:https://www.cnblogs.com/yjds/p/8597394.html
Copyright © 2011-2022 走看看