进程的基础 操作系统 进程的理论
进程的基础
进程的基础
程序
一堆静态的代码文件
进程
一个正在运行的程序进程, 抽象的概念
由操作系统操控调用交于CPU运行 被CPU运行
操作系统
操作系统的基础
管理控制协调计算机中硬件与软件的关系
操作系统的作用
将一些对硬件操作的复杂丑陋的接口, 变成简单美丽的接口
多个进程抢占一个(CPU)资源时, 从操作系统会将你的执行变得合理有序
tip:
阻塞: input read write sleep recv accept sendto recvfrom
操作系统的发展史
最早出现的计算机: 算盘
电子类的计算机发展史:
第一代计算机(1940~1955)
先连接调配各个硬件, 1.5小时, 真空管, 然后在插上程序调试. 效率低.
优点
个人独享整个计算机资源
缺点
硬件调试插线, 耗时
所有人都是串行执行
第二代计算机(1955~1965)
优点
程序员不用亲自对硬件进行插线操控, 效率提高
可以进行批量处理代码
缺点
程序员不能独自使用计算机
你的所有程序还是串行
第三代计算机(1965~1980)
集成电路, 多到程序系统
大背景
集成电路: 把所用的硬件变小, 线路板.
将两套不同的生产线合并成一条生产线
技术上的更新
空间上的复用***
将内存分领域, 一个内存可以同时加载多个进程
时间上的复用***
实现将CPU在多个进程之间来回切换, 并且保留状态
IO阻塞
几乎所有的程序都有IO阻塞
同时加载到内存的三个任务, 三个进程, 每个进程都有阻塞情况, 只要 CPU 运行一个进程时, 遇到IO阻塞立马会切换, 长时间占用 CPU 也会切换
提升效率, 最大限度的使用 CPU. 如果是一个IO密集型进程, 来回切换提升效率, 如果是一个计算密集型, 来回切换降低效率.
特点
第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后, 第三代计算机应用而生
每个人占用计算机的时间有限, 多人(少于10个) 共同使用一个计算机主机
第四代计算机(1980~至今)
进程的理论
串行: 所有的任务一个一个的完成.
并发: 一个CPU完成多个任务. 看起来像是同时完成.
并行: 多个CPU执行多个任务, 真正的同时完成.
阻塞: CPU遇到IO就是阻塞
非阻塞: 没有IO, 就叫非阻塞
进程的有关问题
程序:
一堆静态文件
一个正在执行的程序任务, 一个进程
一个程序能否开启多个进程? 可以
进程的创建
一个子进程必须依赖于一个主进程才可以开启, 一个主进程可以开启多个子进程
unix: fork 创建子进程.
unix(linux,mac) 创建一个子进程会完完全全复制一
个主进程所有的资源,初始资源不变.
windows操作系统调用CreateProcess 处理进程的创建.
windows创建一个子进程,会copy主进程所有的资源,但是会改变一些资源.