初始操作系统之进程
创始人
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安装和用法

相关内容

热门资讯

原创 新... 最近几个赛季,孙铭徽一直都被视为广厦的“小外援”,距离他上一次场均得分不到两位数,还要追溯到2018...
意大利要求Meta暂停禁止竞争... 意大利已下令Meta公司暂停其禁止企业在WhatsApp上使用商业工具提供自家AI聊天机器人的政策。...
山西证券(002500)披露现... 截至2025年12月25日收盘,山西证券(002500)报收于6.11元,较前一交易日上涨0.33%...
瑞典北部发生暴力犯罪事件,多人... 斯德哥尔摩消息:据瑞典媒体报道,25日圣诞节当天,瑞典北部布登市中心城区发生一起暴力犯罪事件,多人受...
博世科及子公司累计新增诉讼、仲... 12月25日,博世科(300422)发布公告,自2025年7月29日至2025年12月24日,公司及...
阳泉市郊区靶向发力精准落实低保... “民生无小事,枝叶总关情。”群众的“急难愁盼”就是监督的发力点。山西省阳泉市郊区纪委监委、阳泉市郊区...
公开背刺?亨特·拜登批评其父移... 亨特·拜登,美国前总统乔·拜登之子,在一档新播出的访谈节目中,就其父亲宽松的移民政策以及从阿富汗撤军...
倍轻松因涉嫌违反证券法律法规等... 证券之星消息,12月26日倍轻松公开信息显示,深圳市倍轻松科技股份有限公司,董事长马学军因涉嫌违反证...
22岁小伙深夜在河边喝酒落水溺... 小伙高某晚上跟3个朋友在饭店喝酒,之后跟其中两人到大渡口边继续喝酒聊天期间不幸溺亡。事后,家属将共同...