• 2.1 动为进程,静为程序 -进程概论 -《zobolの操作系统学习札记》


    2.1 动为进程,静为程序 -进程概论

    问1:发明进程的原因?

    早在20世纪60年代,进程的思想就已经被IBM的工程师们构想出来,并且一直延续到今天。当时的计算机面临着,一段时间内要轮转并发执行多个任务的要求,这要求各个程序之间占据的内存空间互不干扰,程序通过统一的程序编号进行访问控制。

    但是在编写操作系统的时候,我们不可能预料到未来会有什么样程序运行在它之上(什么样都有可能)。所以我们必须给所有运行在操作系统上的程序,再封装一次,让它们拥有一些共性,这样才能借此进行各种后续调度机制的设计。

    进程是为了解决程序并发性和资源共享性而发明的。
    


    问2:现在计算机中的进程的定义是什么?

    进程Process,就是程序执行的过程。
    

    对于进程的定义的含义,我们可以从多个角度进行理解:

    • 进程可以看作是对处理器上运行程序的活动规律一种抽象
    • 进程可以看作是一种数据结构,他对程序执行过程进行封装。
    • 进程是操作系统设计的最小独立实体,拥有自己内存空间和分配的计算力。
    • 进程就是操作系统中的一项任务作业,负责一件事情。
      (我本人认为第一种定义更形象)

    可见进程强调的是执行的过程,如果把程序看作是一道数学题,进程表示的就是做题的过程(开始、暂停、做完、放弃)。进程跟处理器CPU的联系远大于跟程序的联系。


    问3:为什么进程跟处理器的联系更密切?

    虽然进程是由程序创造出来的,但是在程序创造完进程后,进程跟程序就没有关系了。

     操作系统更关心的是进程跟处理器的关系。
    

    因为进程就相当于做事情,管理者更关心的肯定是做事的人和事情的关系。

    从另外一个角度来看,程序在操作系统眼里,本质就是存储在硬盘上的一个二进制数组,根本不需要投入精力去管理。

    但是进程却是实时运行在内存中的过程,时刻渴求着CPU给予足够的计算力,操作系统必须掌控住它的状态,因为CPU的算力同一时刻只能给一个进程。


    问4:进程的主要特性有哪些?

    • 内存空间独立,进程只能访问自己的内存空间和一些公用寄存器,绝对不能访问别的进程的内存空间。
    • 进程是动态的,当我们对待一个进程,一定要考虑它此时的状态。是在使用处理器还是在等待处理器。
    • 两个由相同程序创造出来的进程,其内存空间依然是独立的,不能互相访问。
    • 每个进程都有自己的独立编号,不会重复。


    问5:进程的主要状态:

    注意:确定进程的状态,是考试和学习的重点
    
    • 创建:程序从硬盘拷贝一份到内存变成进程,需要CPU执行
    • 运行:进程在被CPU执行
    • 等待:等待某些外部操作(I/O数据输入、信号),此时不被分配处理器
    • 就绪:等待操作结束,但还未被分配CPU的状态。
    • 终止:程序完成执行,或被操作系统强制注销,释放占据内存空间。

    进程是操作系统学习的核心,是后续一切学习的基础,一定要多思考。
    关键要理解两点 拥有独立的内存空间、跟CPU的五种状态
    

    欢迎访问:个人博客-zobolの计算机操作系统学习札记

  • 相关阅读:
    线程的中断
    线程间的协作机制
    iOS app内打开safari完成google的OAuth2认证
    iOS ipa 重签名 resign
    iOS rebuild from bitcode对ipa大小的影响
    iOS URL Cache文章推荐 (待完成)
    iOS 推荐几篇关于Objective-c 动态语言的文章
    iOS Code Sign On Copy
    设计模式好文章汇总(不断更新中)
    Json 文件中value的基本类型
  • 原文地址:https://www.cnblogs.com/zobol/p/15149461.html
Copyright © 2020-2023  润新知