计算机原理(操作系统角度)
一、操作系统(Operating System /OS)*
1、What/Why/History
多用户-多任务场景 OS的主要职责就是协调——专门的软件来协调工作
【(1)硬件(资源)会被多个任务“同时”访问。(2)OS协调不同任务对硬件资源的访问。OS管理着硬件资源,分配给不同的任务去使用。】
2、从职责视角看OS
(1)OS是一个管理资源的软件。(硬件/软件资源)
(2)OS是一个协调者(管理的含义就是做协调)
(3)OS是一个分配者,分配的主体就是任务。站在任务的角度,就是一切硬件资源都需要找OS申请后才能被授权使用。
3、从地位视角看OS
【总的来说,OS主要研究的就是“管理学”,如何高效、公平、低耗、稳定的进行资源的分配、协调工作以及在其中遇到的种种问题】
【程序最终是以进程(process)的角度去操作系统(协调者/管理者)那申请不同的硬件资源(CPU/IO/内存)进行使用】
4、程序(Program) VS 进程(Process)/ 作业(Job)
(1)程序:就是进行计算的一组流程,抽象为一套做数据处理的步骤(静态,一般是表现为一个或者一组文件)。程序=指令+数据
(2)进程:(本义:过程)进程就是程序的一次执行过程(动态)【*站在用户的视角看什么是进程】
【一个程序可以进行多次执行(表现为多个进程);甚至可以“同时”执行(多个进程同时存在),进程是程序在运行阶段的视角主体。程序是静态的,进程是动态的】
二、进程(Process)(重点)
1、进程基本知识
(1)从用户视角看:进程就是程序的一次执行过程(动态)
(2)站在OS实现的角度看什么是进程:
进程是OS进行资源分配的基本单位。
进程是OS进行资源分配的最小实体。
【1、OS的职责:协调者/管理者
2、资源:被OS管理的资源(硬件资源、软件资源)
3、分配的实体/单位:以此作为基本单位进行分配。分配的时候,只考虑到这一层级
4、基本/最小:允许有更高层级的单位,但是最低到进程】
【结论:
(1)同一进程之间的资源是共享的。(如果存在比进程更低级的单位(进程下的单位),资源是共享的)
(2)不同进程之间的资源,是隔离的。(A进程只能访问A进程自己的资源(这里主要讨论的是内存),A进程无法访问B进程的资源(内存),更无法访问被OS 直接管理的资源)】
【理解进程是什么是非常非常重要的!!!
(1)动态过程
(2)绑定着一个程序
(3)允许同时存在
(4)OS内部进行资源申请的最小个体】
【OS要管理进程,进程是OS内部非常核心的一个概念。可以把OS的职责做个简单的划分:
(1)OS进行CPU协调的模块——进程管理模块:主要负责进程的调度工作(主持不同进程在CPU上运行时