JavaEE操作系统(计算机的软件角度)

目录

1.操作系统的职责

2.程序与进程的区别

3.操作系统的功能

1.1操作系统管理的方面:

1.2进程状态划分:

        1.3进程管理(进程调度)

4.并发和并行的区别

5.用户态(user space)和内核态(kernel space)

6.执行流以及虚拟地址vs物理地址 

7.进程间通信的主要方式

8.内存管理主要研究的问题

9.进程与线程


1.操作系统的职责

操作系统是一个管理(硬件/软件)资源的软件

操作系统是一个协调者(管理的含义就是做协调) 

一切任务都要找OS申请之后才能被授权访问

2.程序与进程的区别

程序:一套做数据处理的步骤(静态的),表现为一个或者一组文件。 

进程(process/task/job ):进程是程序的一次执行的过程。

站在用户角度:

一个程序可以进行多次执行(表现为多个进程),甚至可以同时执行(宏观上)。进程是程序在程序运行阶段的视角主体。

站在OS实现的角度:

进程是OS进行资源分配的基本单位/最小实体。

3.操作系统的功能

1.1操作系统管理的方面:

1.进程管理:(进程调度)

负责CPU的分配,就是CPU在这个时间段做哪个任务,另一个时间段做哪个任务。

而进程调度面临的问题:

需要把抽象的概念,用数据表示处理,用面向对象的思想变成数据,才能被操作系统进行处理。

2.内存管理

3.文件管理(IO操作时简单涉及)

4. 络管理

5.驱动管理

1.2进程状态划分:

新建、就绪、运行、阻塞、结束

运行队列一般就一个

就绪队列:装所有处于就绪状态的进程,这里装的是被CPU等待的进程。

阻塞队列:等待某些外部条件(外部设备等)的进程组成的队列。

1.3进程管理(进程调度)

操作系统什么时候会进行进程调度/span>

1.抢占式:一个进程刚进入就绪状态,但是它的优先级比较高

2.从运行状态到结束状态(即一个进程结束了

3.因为操作系统每隔一段时间会调度一次,当时间片耗尽时也会发生调度。

4.进程主动放弃CPU(等待外部的条件,键盘输入等)。运行——>阻塞、运行——>就绪。

操作系统怎么进行进程切换/p>

进程切换是通过上下文进行切换的,保护上一个进程的上下文,恢复下一个进程的上下文。

上下文指以PC寄存器所代表的一组寄存器的值

保护上一个进程的上下文:把寄存器中的值,保存到内存的某一个位置。

恢复下一个进程的上下文:把内存中之前保护的值,写入寄存器。

4.并发和并行的区别

并发:进程真的在同时执行,微观角度下的同时,是多个指令在执行,发生在多CPU的场景下。

并行:微观上是一次只执行一个进程,宏观上是“同时”执行。

5.用户态(user space)和内核态(kernel space)

内核态:CPU正在执行操作系统的指令,就进入了内核态。(性能较差)

用户态:用户在执行普通进程的指令。(性能较好)

内核态的指令权限高(所有的硬件都能访问),可以访问所有内存,用户态权限较低,只能访问进程自己的内存,只能访问操作系统规定的资源。

如何从用户态变为内核态:

1.系统调用(system call):操作系统实现一组访问。

2.通过CPU中断进程操作系统的指令。

6.执行流以及虚拟地址vs物理地址 

执行流(execution flow):拥有独立PC的一套指令,不同的执行流从现象上看起来完全独立。

虚拟地址与物理地址:

物理地址:真实的内存地址

虚拟地址:物理地址被操作系统转换后的地址

这么做的原因是:同一个进程不一定会被放在内存的同一个位置,而且不同的进程因为地址的不同,而且可能不连续,编写程序会变得很复杂。

虚拟地址是暂时承诺给你,等你需要(访问这段内存)的时候才会给你分配内存

7.进程间通信的主要方式

1.管道(pipe)

2. 消息队列(manage queue)

3.信 量(semphore)

4.信 (signal)

5.共享内存(shared memory)

6. 络(network)————-workbench与mysql的主要通信方式

8.内存管理主要研究的问题

1.哪些内存已经被分配,哪些内存暂时未被分配。

2.已经分配出去的内存何时回收何进行回收/p>

3.物理地址到线性地址的转换

4.内存碎片 

9.进程与线程

进程和线程时1:m的关系

一个线程一定属于一个进程,一个进程下可以允许有多个线程。

一个进程内至少有一个线程,通常把一开始就存在的这个线程称为主线程。

 主线程和其他线程完全平等,所以执行线程时并不确定时哪一个线程先执行。

进程:资源分配的基本单位

线程:cpu调度的基本单位

线程变成了独立执行流的承载概念

进程退化成了资源承载的概念

每个指令都有自己独立的PC

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树使用JDBC操作数据库JDBC概述91280 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月17日
下一篇 2022年3月17日

相关推荐