进程的基础
进程的基础
程序
? 一堆静态的代码文件
进程
? 一个正在运行的程序进程, 抽象的概念
? 由操作系统操控调用交于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主进程所有的资源,但是会改变一些资源.
进程的状态
原文地址:https://www.cnblogs.com/beichen123/p/11378808.html