初始操作系统之进程
创始人
2024-03-12 08:59:51
0

在这里插入图片描述

文章目录

  • 一、什么是操作系统
  • 二、进程
    • PCB
    • 内存管理

一、什么是操作系统

操作系统*(英语:Operating System,缩写:OS)*是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。

简单来说:操作系统是一个软件,是用来管理的,操作系统是位于软件硬件用户交互的媒介。

1.对下,管理硬件设备

2.对上提供稳定的运行环境

常见的操作系统:

Windows:windows98, 2000, xp, vista,win7, win10, win11(普通人使用较多的操作系统)

Linux: 适合开发和部署(程序员经常使用的系统)

Mac: 苹果电脑的系统,和Linux有一些相似之处

还有一些手机上的系统;Android ,IOS等
在这里插入图片描述
蓝色圈起的就是操作系统的定位。

硬件设备: 我们实体看得见摸得着的就是硬件设备,更通俗易懂的就是电脑后盖打开看到的都是。

驱动程序: 我们每台电脑的硬件都不一样,系统如何去识别这些硬件设备,硬件厂商在开发硬件的同时会给电脑装上驱动程序,方便操作系统去调用硬件系统。

操作系统内核: 是操作系统最主要最核心的部位,承上启下。

系统调用: 操作系统给应用程序提供的一些API接口。

应用程序:QQ,java,英雄联盟等等都是。

大概的流程就是,应用程序通过一些系统调用指令告诉操作系统内核,内核去调用驱动程序去操作硬件设备。

二、进程

进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

简单来说进程就是一个正在运行的程序。
在这里插入图片描述
如果没有正在运行,那么就不能称之为进程,只能称为:程序.
在这里插入图片描述
因为没有运行我们操作系统并没有为其分配资源,当我们运行之后,我们就会为其分配一系列资源,所以我们称: 进程是操作系统资源分配的基本单位

PCB

我们操作系统内核要对进程管理(描述 + 组织)

描述: 使用C语言的结构体(PCB 进程控制块) 来描述进程属性,至于为什么不使用java的类或者其他来描述,因为我们的操作系统基本都是用(C/C++)写的。

组织: 通过双链表来将多个PCB串起来,每创建一个进程(创建一个PCB对象插入到链表中),销毁一个进程(把链表中的PCB节点删除掉)

PCB里面有哪些具体的属性呢?

1.pid: 进程的唯一标识表(类似于数据库的主键)
在这里插入图片描述
2.内存指针: 指向了自己分配到内存

3.文件描述符表: 硬盘上的文件等其他资源

硬件资源: 内存,硬盘,网卡等这些资源对进程来说都比较好分配。

CPU资源不太好分配: 我们电脑可能进程有几十上百个,但是我们电脑的CPU(虽然现在电脑都是多核CPU),但是远不够这些进程去分配。
在这里插入图片描述

我们可以通过设备管理器去查看自己的电脑是几核的。

我们肯定是希望进程都是同时运行的,原因很简单"爽",同时运行可以简单的分为(并行和并发)。

并行: 同一时刻,两个核心上的进行是同时执行的(真正的同时运行)。

并发: 同一时刻,一个核心只能够运行一个进程,但是我们能够快速的切换(感官上的同时运行)。

比如在CPU的一个核心上,我们先运行一下CSGO,在运行一下英雄联盟,只要切换速度很快(3.1GHz,每秒25亿条指令),我们感官上觉得是在同时运行。
在这里插入图片描述
4.进程调度的属性:

既然我们有这么多进程,那么就需要有人来管理,操作系统里有个调度器,负责让有限的CPU调度执行这些进程。

  1. 进程状态

    就绪状态: 准备就绪,随时等待CPU调度执行。

    运行状态: 正在CPU上实实在在运行

    阻塞状态: 简单地说就是等待状态,短时间内无法在CPU上执行.

  2. 优先级

    这么多进程,操作系统进行调度的时候,并不是完全平等,而是有一定的优先级的。

  3. 上下文

    操作系统并发执行时,进程与进程切换的时候,如何恢复到之前的状态,就需要我们把进程的“中间状态"保存下来。实际上就是保存CPU各个寄存器中的值到内存中。

  4. 记账信息

    操作系统,统计每个进程在CPU上的占用时间以及指令数目,来决定下一阶段如何调度。

内存管理

我们程序中所获取的内存地址,不是硬件上真真实实的地址,而是进行一些计算之类出来的虚拟地址。
img
这就是一个真实的内存条,我们的内存时有一个内存编号,这个内存编号就是"物理地址",真实的地址,正因如何所以我们内存支持随机访问(通过这个编号)。
在这里插入图片描述
如果我们程序直接访问的是物理地址,如果正常操作还好,但是如果越界访问了,就会对其他进程的数据进行改变,比如我们正在写代码,不一会把网易云写崩了,这是很危险的操作,所以我们程序操作的是虚拟内存。
在这里插入图片描述
所以我们引入了一个虚拟地址的概念,对物理地址进行隐藏和隔离,避免进程之间的相互影响,MMU硬件设备(集成在CPU)是为了虚拟地址和物理地址的转换速度更快.

当我们操作系统内核发现转换后的地址超过了物理地址的访问返回,就会直接向进程返回一个错误,进而引发进程崩溃,这里的崩溃不会影响到其他进程。

上一篇:vue 微信登录

下一篇:nohup安装和用法

相关内容

热门资讯

nohup安装和用法 nohup 英文全称 no hang up(不挂起) 作用:...
中国进出口银行甘肃省分行浇灌政... 原标题:中国进出口银行甘肃省分行浇灌政策性金融“活水”助力乡村振兴 中国进出口...
Go学习之旅:包、变量和函数(... 文章目录前引包、变量和函数1、包的概念和所用2、导出名或者导出函数3.1、函数参数声明方式ÿ...
欠钱不还警察管不管? 欠钱不还警察管不管1、欠钱不还,警察不管,也不能管,只能向法院起诉;2、法律依据:《公安部关于公安机...
北京高院发布打击治理洗钱犯罪审... 原标题:北京高院发布打击治理洗钱犯罪审判白皮书及典型案例 明知亲友实施贪污贿...
曝周海媚在北京别墅不值钱,住北... 在璀璨夺目的娱乐圈,明星的生活总是充满着各种光鲜和传奇。背后的真相往往与表面的华丽大相径庭。有关周海...
海淀在北京属于教育强的区域,所... 现在有人问哪个行业还有机会,其实哪个行业都有机会,只是看谁去做。记得以前软件测试和嵌入式,都是一些做...
内蒙古赤峰市巴林右旗:“支持起... 原标题:内蒙古赤峰市巴林右旗:“支持起诉+多元化救助”护航困境儿童成长之路 ...
特斯拉深陷诉讼案件,大规模召回... 原标题:特斯拉深陷诉讼案件,大规模召回治标能否治本? 作为对美国国家公路交通安...
RabbitMQ-04 Hel... 首先我们还是先看一下Rabbitmq的工作原理图          从图上我们可以看到࿰...