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

本文探讨了操作系统的职责,包括进程与程序的区别、操作系统的功能,如进程管理、内存管理和文件管理。深入讲解了并发与并行的区别,用户态与内核态的概念,以及执行流、虚拟地址和物理地址的差异。还介绍了进程间通信的方式,如管道、消息队列等,并分析了内存管理的主要问题。最后,阐述了进程与线程的关系,强调线程作为CPU调度的基本单位。
摘要由CSDN通过智能技术生成

目录

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进程管理(进程调度)

操作系统什么时候会进行进程调度?

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

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

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

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

操作系统怎么进行进程切换?

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

上下文指以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.已经分配出去的内存何时回收?如何进行回收?

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

4.内存碎片 

9.进程与线程

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

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

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

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

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

线程:cpu调度的基本单位

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值