1. 操作系统
管理、控制、协调计算机硬件与软件资源的计算机程序。
1.1 作用
- 将一些对硬件操作的复杂、丑陋的接口,变成简单、清晰的接口。
2. 将多个进程对硬件资源(cpu)的竞态请求变得有序化、合理化。
1.2 操作系统的发展
linux或windows的源代码有五百万行数量级。
计算机发展史:
-
第一代:电子管计算机(1946——1958年),真空电子管,机器语言编写。
优点:个人能够独享资源;
缺点: 体积大,功耗高,速度慢,操作繁琐,串行执行。
-
第二代:晶体管计算机(1958年—1964年)存储与磁盘,批处理系统
优点:批处理,节省机时;
缺点:人参与控制,串行执行,统一规划到一批作业中。
-
第三代:集成电路计算机(1964年—1970年):多道程序系统
背景:1. 集成电路:把所用的硬件变小,线路板。2.不同生产线不兼容,需合并兼容。
多道程序系统:
- 空间上的复用:将内存分区域,一个内存可以同时加载多个进程。
2. 时间上的复用:实现将cpu在多个进程之间来回切换,并且保留状态。
几乎所有的程序又有IO阻塞;同时加载到内存3个进程,每个进程都有阻塞情况,只要cpu运行一个进程遇到IO阻塞时,会立马切换,长时间占用cpu也会切换。 这样能够提升效率,最大限度的使用cpu。
如果时一个IO密集型进程,来回切换提升效率;
如果是一个计算密集型,来回切换降低效率。
再加上计算机采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生。(分时系统)
特点:系统化、标准化。
- 空间上的复用:将内存分区域,一个内存可以同时加载多个进程。
-
第四代:大规模集成电路(1970年—至今)
集成度更高,体积小,使用方便。
2. 进程的理论
2.1 相关名词
程序:一堆静态的代码。
进程:程序的运行过程、任务。 是由操作系统操控调用交与cpu运行。
一个程序可以开启多个进程。
串行:所有的任务一个接一个去完成。
并行:多个cpu执行多个任务,真正的同时完成。
并发:一个cpu完成多个任务,看起来像是同时完成。
阻塞:cpu遇到IO就是阻塞。
非阻塞:没有IO就是非阻塞。
2.2 进程的创建
新的进程创建都是由一个已存在的进程执行调用创建的。
一个主进程可以开启多个子进程;
一个子进程必须依赖主进程才可以开启。
Unix: 由fork创建子进程。linux,mac基于Unix: 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.
Windows:操作系统调用CreateProcess 处理进程的创建。创建一个子进程,会copy主进程所有的资源,但是会改变一些资源。
2.3 进程的状态:
运行、阻塞、就绪三种状态。