操作系统与进程调度

这篇具有很好参考价值的文章主要介绍了操作系统与进程调度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、计算机操作系统

1.操作系统(Operating System)

操作系统是一组做计算机资源管理的软件的统称,我们在日常生活常接触到的操作系统有:windows、IOS、Android、鸿蒙,以及Linux系统等等,那么操作系统是什么?计算机是如何运行的?

计算机是由软件、硬件相互配合工作;事实上,操作系统可以看做是介于软硬件之间的一组软件,主要起到两点作用:

  • 提供稳定的运行环境给软件
  • 管理好各种硬件设备

2.计算机系统示意图

下图为计算机系统示意简图,其中操作系统属于系统软件,大家可以了解一下:
操作系统与进程调度
当然,我们学JavaWeb最关心的不是他的硬件如何,就目前来说也不应该是操作系统是如何实现的,我们最密切关心的内容是进程管理模块

二、进程

1.进程/任务(Process/Task)

简单来说,一个运行起来的程序(.exe)就是一个进程,从操作系统的调度上来看,进程在运行时,需要向操作系统申请资源,因此进程是操作系统进行资源分配的基本单位。
操作系统与进程调度
以上的每一项任务都是一个进程,我们可以看到有一百多个进程,这么多进程同时跑起来,为了保证在计算机上的有序执行,于是需要引入进程管理~

管理:

  • 先描述:明确把这个东西有啥特征,都表示出来 ,操作系统主要是通过C/C++实现的,这里的描述其实就是用结构体/类;进程这个结构体称为“PCB”(process control block)进程块。
  • 再组织:使用一个数据结构(双向链表),把很多个这样的结构体 / 对象给整理到一起
  • //创建进程:先创建出PCB,然后把PCB加载到双向链表中
  • //销毁进程:找到链表的PCB,并且从链表上删除
  • //查看任务管理器:就是遍历链表

2.进程控制块抽象(PCB Process Control Block)

一个进程的属性是非常多的,因此在PCB中存储的是一些较为关键的属性,主要属性有以下:

class PCB {
    // 进程的唯一标识 —— pid;
    // 进程关联的程序信息,例如哪个程序,加载到内存中的区域等    
    // 分配给该资源使用的各个资源
    // 进度调度信息(下面讲解)
}

说明:

  • 身份标识PID: 一个进程有一个唯一的身份标识
  • 内存指针:*指明了当前进程要使用的是哪一部分内存(进程是消耗一定的硬件资源的)。
  • 文件描述表:程序运行过程中,进程每次打开一个文件,就会增加一个文件描述符,文件描述符会以顺序表的方式存储构成文件描述表。
  • 辅助属性:该类属性主要是为了辅助进程调度,主要是描述与cpu资源相关的属性

3.进程调度(Process Scheduling)

计算机在执行程序时离不开CPU,CPU的核心数相当于干活的人数,线程数相当于干活效率
操作系统与进程调度
如上图,现在常见的CPU多为六核十二线程、八核十六线程等等,反观我们的进程数却经常以百为单位,注意,我们要的是同时干!!! 那么他们是如何执行这么多任务的呢?

  • 并行:同一时间,各干各的,互不打扰,进程之间就是并行的
  • 并发:先干一会儿A,再干一会儿B,再干一会C,再去干A~,只要切换够快,我们就认为ABC是并发的

通过并行+并发,我们就可以实现CPU‘同时’执行几百个进程,注意:并行和并发只有在微观上有区分,宏观上我们是区分不了的,因此我们将并发+并行统称为并发。

进程调度的辅助属性通常有以下几点:

  • 进程状态
  • 进程的优先级
  • 进程的记账信息
  • 进程的上下文

说明:

  • 进程状态:描述这个进程接下来的调度方式;阻塞状态:改进程暂时无法在CPU上执行;2.就绪状态:随时可以在CPU上执行
  • 优先级:进程在调度时要有先后顺序以及时间分配
  • 记账信息:统计进程在CPU上的执行时间,作为一定的参考依据进行调整
  • 上下文:通俗来讲就是游戏的存档、读档;具体来讲就是CPU在执行过程中,执行中间的值以及执行的计算机指令等内容

4.内存管理(Memory Manage)

这里讲到的内存管理主要是指虚拟地址空间,事实上,每个进程访问的内存地址都不是真实的,而是利用一个页表将虚拟地址空间映射到真实地址空间上
操作系统与进程调度
如图,进程直接访问内存,如果出现数组越界等等的代码bug,极有可能由一个不相干的进程引起另一个进程的bug,显然这种实现代价是极为糟糕的,使用代价也是非常大的,为了让各个进程之间互不干扰, 就出现了“虚拟地址空间”,每个进程都只能访问到自己的地址空间,成功的完成进程间的隔离。

虚拟地址主要指的是进程在访问地址时,会被操作系统通过一个中间站“页表”来映射到真实的内存地址,如果出现野指针、数组越界等等bug,会被页表报错,就无法修改真实内存地址上的内容,从而不会产生对别的进程的干扰

进程之间无法互相干扰,大大提高了操作系统的稳定运行!

5.进程间通信(Inter Process Communication)

现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。进程间通信的需求就应运而生。
目前,主流操作系统提供的进程通信机制有如下:

  1. 管道
  2. 共享内存
  3. 文件
  4. 网络
  5. 信号量
  6. 信号

其中,网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。文章来源地址https://www.toymoban.com/news/detail-450251.html

到了这里,关于操作系统与进程调度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机操作系统重点概念整理-第二章 进程管理【期末复习|考研复习】

    计算机操作系统复习系列文章传送门: 第一章 计算机系统概述 第二章 进程管理 第三章 进程同步 第四章 内存管理 第五章 文件管理 第六章 输出输出I/O管理 给大家整理了一下计算机操作系统中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王道的计算

    2024年02月08日
    浏览(41)
  • 计算机操作系统【慕课版】习题答案(第2章进程的描述与控制)

    一:简答题 (1).什么是前趋图?试画出下面四条语句的前趋图. S1:a=x+y; S2:b=z+1; S3:c=a-b; S4:w=c+1; 答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。 (2)什么是进程? OS中为什么要引入进程?它会产生什么样的

    2024年04月13日
    浏览(25)
  • 【操作系统】期末速成之计算题:进程调度算法

    先来先服务是非抢占式的算法 一个🌰 例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用先来先服务调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。 进程 到达时间 运行时间 P1 0 7 P2 2 4

    2024年02月11日
    浏览(29)
  • 《操作系统》——计算机系统概述

    前言: 在之前的【Linux】学习中,我们已经对常见指令已经开发工具等进行了详细的了解。紧接着,我们将要学习的便是关于【Linux进程】的基本知识。但是为了帮助大家更好的理解相关的知识概念,我先带领大家来学习关于《操作系统》这门课的基本知识!!! 目录 (一)

    2024年02月03日
    浏览(75)
  • 操作系统 --- 计算机系统引论

            操作系统 ( Operating System , OS )是指控制和 管理 整个计算机系统的 硬件和软件 资源,并合理地组织调度计算机的工作和资源的分配;以 提供给用户和其他软件方便的接口和环境 ;它是计算机系统中最基本的 系统软件。              ———— 王道       

    2024年02月09日
    浏览(39)
  • 【操作系统】 1、计算机系统概述

    从操作系统的角度上来划分计算机体系结构: 这里注意一点: 编译器属于应用程序。 操作系统 :是指 控制 和 管理 计算机系统的 硬件 和 软件 资源 ,合理的组织、调度计算机的工作与资源分配,进而为用户和其他软件提供 方便接口与环境的程序集合。 操作系统是计算机

    2024年02月08日
    浏览(45)
  • 计算机操作系统-笔记

    第一章 引论 1. 操作系统定义 操作系统是运行在内核态的软件,它执行两个基本上独立的任务。 隐藏计算机底层硬件的实现,为用户及应用程序提供一个资源集的清晰抽象。 管理计算机硬件资源。 任何操作系统的核心是它可处理的系统调用集。这些系统调用集真实地说明了

    2024年02月20日
    浏览(38)
  • 计算机基础——操作系统

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录  前言 一.操作系统 1.操作系统简介  2.操作系统的主要功能 (1)资源管理 (2)人机交互  (3)程序控制 (4)进程管理

    2024年01月23日
    浏览(42)
  • 计算机操作系统安全

    操作系统安全是计算机系统安全的重要组成部分,目的是保护操作系统的机密性、完整性和可用性。在当前的网络环境下,操作系统面临着许多威胁,如病毒、木马、蠕虫、黑客攻击等等。为了保护操作系统的安全,需要采取各种措施来防范这些威胁。本文将介绍一些常见的

    2024年02月02日
    浏览(39)
  • 计算机基础--->操作系统(4)【文件系统】

    文件系统主要负责管理和组织计算机存储设备上的文件和目录,其功能包括以下几个方面: 存储管理 :将文件数据存储到物理存储介质中,并且管理空间分配,以确保每个文件都有足够的空间存储,并避免文件之间发生冲突。 文件管理 :文件的创建、删除、移动、重命名、

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包