目录
一、冯诺依曼体系结构
(1)截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
输入单元:包括键盘,鼠标,扫描仪,写板等
中央处理器(CPU):含有运算器和控制器等
输出单元:显示器,打印机等
(2)关于冯诺依曼:
这里的存储器指的是内存
不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
所有设备都只能直接和内存打交道
二、操作系统(Operator System)
1、概念
(1)任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)
(2)操作系统管理的范畴包括:
<1>系统内核
进程管理:通过一个PCB的结构来保存进程信息,包括PID(进程启动后系统分配),进程名称,进程状态等
内存管理
驱动管理:通过驱动程序间接管理计算机硬件
统计信息:系统可以统计系统的资源信息,如内存,CPU,网络等
<2>其他程序(例如函数库,shell程序等等)
2、OS定位
(1)在整个计算机软硬件架构中,操作系统的定位是:一款纯正的搞管理的软件
(2)对于一套系统:
管理者的任务种类分两种:硬件管理软件管理
按照目标对象分两种:一种对内的管理,一种对外业务进行管理
3、设计OS的目的
(1)与硬件交互,管理所有的软硬件资源(对内且对下)
(2)为用户程序(应用程序)提供一个良好的执行环境(对外且对上)
三、进程
1、进程的初步认识
(1)进程的概念:
对于操作系统来说,一个任务就是一个进程(Process)
课本概念:程序的一个执行实例,正在执行的程序等
内核观点:担当分配系统资源(CPU时间,内存)的实体
(2)对于进程的理解
<1> 一个程序刚开始就是一个在硬盘上的程序,加载运行时,是为了完成某些任务,而要完成任务,就需要操作系统为该任务提供足够做的资源(如内存和CPU资源),而这一整套任务的执行,我们可以叫做进程
<2> 进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的
(3)程序和进程的区别:
<1> 程序:静态的可执行命令,某些文件不属于程序
<2> 进程:程序运行以后,由操作系统管理(动态的,运行的)
<3> java文件,和class文件属于程序
java代码编译:javac XX.java -- javac有程序变为进程来执行编译操作,XX.java作为参数传入进程中
java代码运行:java XX -- java作为程序/进程,XX作为参数,进程是查找这个参数的class文件
(4)程序内存和进程的关系:
2、时间片
(1)操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。
(2)任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来
(3)表现:由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”;
(4)真实情况:一个CPU,在某个时间段,有系统调度,在不同的进程间切换
3、并行与并发
(1)并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进,称之为并发。
(2)并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行
4、内核态与用户态
一般的操作系统(如Windows、Linux)对执行权限进行分级:用户态和内核态
(1)操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态,或核心态
(2)用户程序的权限最低,称为用户态
5、进程中的上下文
(1)上下文简单说来就是一个环境,进程在时间片轮转切换时,由于每个进程运行环境不同,就涉及到转换前后的上下文环境的切换
就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
切换时需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行
(2)进程切换出去时:系统保存进程环境信息
(3)进程切换进来时:系统获取之前保存的该进程的环境信息,并恢复
6、进程状态
(1)就绪:进程处于可运行的状态,只是CPU时间片还没有轮转到该进程,则该进程处于就绪状态
(2)运行:进程处于可运行的状态,且CPU时间片轮转到该进程,该进程正在执行代码,则该进程处于运行状态
(4)阻塞:进程不具备运行条件,正在等待某个事件的完成