你眼中的操作系统(进程、线程、分页、分段)

   日期:2020-08-20     浏览:98    评论:0    
核心提示:学习忙碌之际,写一篇关于Java面试 进程、线程、分页、分段 的文章,知识基于计算机操作系统首先什么是操作系统? 什么是进程、线程? 那什么又是分段、分页呢?什么是操作系统:我相信大家都知道,就就是那电脑,那系统,电脑的系统就是操作系统,恨不得给电脑砸了也说不出一二,什么是操作系统?不说废话 进入正题.操作系统:简单了解一下 计算机系统的组成(回到学生年代)以及操作系统所处于的计算机系统的层次可以知道:计算机系统是由硬件和软件组成,操作系统在硬件基础上的第一层软件,是其他软件和硬件之间的接

学习忙碌之际,写一篇关于Java面试 进程、线程、分页、分段 的文章,知识基于计算机操作系统

首先什么是操作系统? 什么是进程、线程? 那什么又是分段、分页呢?

什么是操作系统:我相信大家都知道,就就是那电脑,那系统,电脑的系统就是操作系统,恨不得给电脑砸了也说不出一二,什么是操作系统?不说废话 进入正题.

操作系统:

简单了解一下 计算机系统的组成(回到学生年代)

.
以及操作系统所处于的计算机系统的层次

可以知道:计算机系统是由硬件和软件组成,操作系统在硬件基础上的第一层软件,是其他软件和硬件之间的接口,上图我们可以清楚的得出结论!

那什么是进程、线程、核心线程、用户线程呢?(以后补充协程)

按照概念
进程:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。
线程:也称轻量级进程,进程中的一个运行实体,是一个CPU调度的单位,资源的拥有者,还是进程或称任务。

看了操作系统的官方解释我们好像还是不知道进程线程是什么东西???

从通俗的来理解:

进程
程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理I0的
当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。

进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(如记事本、画图、浏览器
等),也有的程序只能启动一个实例进程(例如网易云音乐、360 安全卫士等)

概括来说:程序本质就是数据和指令,进程就是将指令加载到cpu,数据加载到内存。管理相应的程序的内存和IO以及其他。

线程
一个进程之内可以分为一到多个线程。
一个线程就是一个指令流,将指令流中的一条条指令以-定的顺序交给CPU执行
Java中,线程作为最小调度单位,进程作为资源分配的最小单位。 在windows中进程是不活动的,只是
作为线程的容器。
概括来说:线程是属于进程的,线程就是一个处理指令流的东西。是他带着指令交给cpu执行的。

那为什么要有线程这种东西呢?进程的存在可以理解吧(程序就是基于进程存在的,如果没有进程,也就没有我们的程序了)

这样我们又得了解一下PCB:
首先我们的进程有三种基本状态:(当然不止三种)

为了控制进程的这几种活动,比如从就绪到运行,怎么控制,那就要通过我们的PCB(进程控制块 Process control block) 那这和线程有什么关系呢?因为PCB是用来控制和管理进程的,当然他也存放了描述该进程情况和控制进程运行需要的全部信息。(具体PCB内的内容可以自查)

so? 所以呢?

所以我们多个进程在切换的时候,那我们每次切换是不是都要加载PCB去了解当前的进程情况,这就是进程切换,那我上一次的进程信息是不是要保存在我们的PCB中,等待下一次运行的时候载入。那么如果用几个进程去处理一件事情是不是得疯狂切换进程(进程系统)。

这里说一下 进程切换缺点:时间空间开销大,限制并发度的提高

所以我们需要基于更小代价且并发度还要高,也就是基于线程操作的系统;

线程,同理控制线程的也就是线程控制块TCB(Thread control blockPCB肯定同理
的,就存储线程相关的信息。

线程的引入:在操作系统中,进程的引入提高了计算机资源的利用效率。但在进一步提高进程的并发性时,人们发现进程切换开销占的比重越来越大,同时进程间通信的效率也受到限制。

线程的引入正是为了简化进程间的通信,以小的开销来提高进程内的并发程度

既然有了线程,我们看一下线程到底强在何处?

1、是进程的一个实体,可作为系统独立调度和分派的基本单位。
2、不拥有系统资源(只拥有从属进程的全部资源,资源是分配给进程)
3、一个进程中的多个线程可并发执行。(进程可创建线程执行同程序的不同部分)
4、系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)
5、创建一个新线程花费时间少相比一个进程
6、两个线程的切换花费时间少
(如果机器设有“存储[恢复]所有寄存器”指令,则整个切换过程用几条指令即可完成)
7、因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核

所以说 线程是很有存在的必要的!线程的出现大大的提高了程序运行的效率以及提高进程内的并发程度

最后总结: 你眼中的进程、线程

最后先到这里,下次再聊什么是核心线程 ,什么是用户线程 以及分页 分段 。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服