【JavaWeb】操作系统

操作系统

目录

操作系统

1.冯洛伊曼体系结构

2.操作系统(Operator System)

2.1 概念

2.2 OS 定位

2.3 设计OS的目的

3.进程

3.1 进程的初步认识

3.2 时间片

3.3 并发和并行

3.4 内核态与用户态

3.5 进程中的上下文

3.5 进程状态


1.冯洛伊曼体系结构

                                                                      冯·洛伊曼体系结构    

                                                    黑线:控制信号              红线:数据结构

                           

 计算机都是由一个个硬件组件组成的:

输入单元:包括键盘,鼠标,扫描仪,写板等;

中央处理器(CPU):含有运算器和处理器等;

输出单元:显示器,打印机等;

关于冯洛伊曼,强调几点:

这里的存储器指的是内存;

不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备);

外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

一句话,所有设备都只能直接和内存打交道。 

2.操作系统(Operator System)

2.1 概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS),操作系统包括:

1)内核(进程管理,内存管理,文件管理,驱动管理)

2)其他程序(例如函数库,shell程序等等)

2.2 OS 定位

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件;

如何理解管理;

操作系统,也是一套系统,可以类比来看,

1)管理者的任务种类分两类:硬件管理和软件管理;

2)按照目标对象分为两种,一种对内的管理,一种对外业务进行管理;

2.3 设计OS的目的

1)与硬件交互,管理所有的软硬件资源(对内且对下)

2)为用户程序(应用程序)提供一个良好的执行环境(对外且对上)

3.进程

3.1 进程的初步认识

对于操作系统来说,一个任务就是一个进程(Process)

课本概念:程序的一个执行实例,正在执行的程序等。

内核观点:担当分配系统资源(CPU时间,内存)的实体;

理解进程:类比,一个程序刚开始就是一个在硬盘上的程序,加载运行时,是为了完成某些任务,而要完成任务,就需要操作系统为该任务提供足够的资源(如内存和CPU资源),二者一整套任务的执行,我们可以叫做进程;

所以,进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的;

3.2 时间片

现代操作系统都是支持“多任务”的操作系统,所谓的多任务,就是操作系统可以同时运行多个任务;

操作系统的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行;

任务执行的一小段时间叫做时间片,任务正在执行的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于他的时间片的到来;这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在同时进行了,这也就是我们所说的并发。

3.3 并发和并行

现在,多核CPU已经非常普及了,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。

并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个线程都得以推进,称之为并发;

并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行;

3.4 内核态与用户态

一般的操作系统对执行权限进行分级:用户态和内核态

内核态(核心态):操作系统内核作为直接控制硬件设备的底层软件;

用户态:用户程序的权限最高;

3.5 进程中的上下文

上下文简单来说就是一个环境,进程在时间片轮转切换时,由于每个进程运行环境不同,就涉及到转换前后的上下文环境的切换;

就是一个进程在执行的时候,CPU的所有寄存器中的值,进程的状态以及堆栈上的内容;

切换时需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行;

3.5 进程状态

                  

就绪:进程处于可运行的状态,只是CPU时间片还没有轮转到该进程,则进程处于就绪状态;

运行:进程处于可运行的状态,且CPU时间片轮转到该进程,该进程正在执行代码,则该进程处于运行状态;

阻塞:进程不具备运行条件,正在等待某个事件的完成;

就绪---->运行:获取CPU时间片;

运行---->就绪:时间片用完;

运行---->阻塞:某事件发生,如等待I/O请求;

阻塞---->就绪:某事件发生,如I/O请求完成;

发布了62 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43669007/article/details/103396109
今日推荐