首页 > 系统相关 >进程的基本

进程的基本

时间:2024-09-26 20:20:29浏览次数:8  
标签:基本 struct 管理 内存 进程 CPU 操作系统

1.冯诺依曼体系结构

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构

截至目前为止,我们所认识的计算机,都是由一个个硬件组件组成的:

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板等
  • 中央处理器(CPU):含有运算器和控制器等
  • 输出单元:显示器,打印机等

关于冯诺依曼,必须强调几点:

  • 这里存储器指的是内存
  • 不考虑缓存情况,CPU只能对内存进行读写,不能访问外设(输入与输出设备)
  • 外设要输入或输出数据,也只能通过内存进行写入与读取
  • 所有设备都只能和内存打交道
  • 任何程序运行的时候,都先从(磁盘)加载到内存中;(代码->可执行程序->运行->内存)

数据在计算机内进行传输,从一个设备到另一个设备,本质上就是数据的拷贝,所以拷贝的效率决定计算机的整体效率

当进行运算数据的时候,CPU直接从内存中进行读取,大大减少了数据直接从输入设备传入CPU的传输时间,如果没有了存储器,直接从输入设备传给CPU,而CPU的计算速度极快,运算效率远大于输入设备的传入效率,根据木桶定律,这样计算机的整体效率就会取决于数据的传输效率,这样速度就太慢了,所以当有存储器的出现,这里存储器(内存)就相当于巨大缓存区,数据都加载入缓存区,大大减少了数据直接传输给CPU的时间,大大提高了效率,这就是冯诺伊曼体系结构的优秀之处,伟大的发明。

2.操作系统(Operator System)

概念:任何计算机都包含一个基本的程序集合,称为操作系统(OS),操作系统包括:

  • 内核(进程管理,文件管理,内存管理,驱动管理)
  • 其他程序(例如数据库,shell程序等)

设计OS的目的:

  • 与硬件交互,管理所有的软硬件资源
  • 为用户程序(应用程序)提供一个稳定的,高效的,安全的运行环境

定位:

  • 一款纯正的“搞管理”的软件

如何理解管理:

  1. 管理的例子
  2. 描述被管理的对象
  3. 组织被管理的对象
  4. 就是先描述再组织

操作系统对下进行硬件的管理,对上给用户提供各种所需的接口,对用户化繁为简。

操作系统如何对下进行硬件管理呢?

操作系统不能直接进行控制硬件设备,需要通过驱动程序来管理对应的底层硬件,那么如何通过驱动程序来管理的呢?其实就是依靠内存中的数据结构来进行管理,如下图:

定义一个struct结构体,代表一个设备,通过链表来进行链接起来,这样就可以很好的管理,就是对硬件的增加与减少相当于对链表的增删查改。就是先描述再组织

总结:

  • 描述起来,用struct结构体
  • 组织起来,用链表或者更高效数据结构

系统调用和库函数概念:

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分 由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统 调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

3.进程的概念

进程管理---先描述再组织(先把进程描述起来,再把进程组织起来)。

基本概念:

  • 课本概念:程序的一个执行实例,一个正在执行的程序等;
  • 内核观点:担当分配系统资源(CPU时间,内存)的实体;

描述进程PCB:

  • 进程的信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合
  • 这种数据结构被称为PCB,linux下PCB为:task_struct

Linux下task_struct被称作描述进程的数据结构。

如:

操作系统如何进行进程管理呢?

一个程序运行时,从磁盘中被拷贝进内存,同时在内存中形成负责管理该程序的task_struct结构体把进程属性数据进行集合在结构体中,当有多个运行程序时,就会分别形成对应的task_struct结构体,然后这些结构体通过高效的数据结构根据优先级进行链接起来,然后这些结构体就被很好并且有序的管理起来,然后进入缓冲队列依次被CPU处理。如下图所示:

进程=内核数据结构(task_struct)+程序的代码和数据

运行起来的程序-->会根据task_struct属性被OS调度器调度,运行

为什么会有PCB?因为OS要管理进程,先描述,后组织

标签:基本,struct,管理,内存,进程,CPU,操作系统
From: https://blog.csdn.net/2302_80652761/article/details/142568905

相关文章

  • Linux系统基本概念与文件系统组成
    基本概念Linux是一种广受欢迎的开源操作系统,具有高度的灵活性、稳定性和安全性。以下是Linux的一些基本概念:一、起源与发展起源:Linux最初由芬兰计算机科学家林纳斯·托瓦兹(LinusTorvalds)在1991年首次发布。它是基于当时的Minix操作系统,开发出的一个免费的类Unix操作系统......
  • Windows Server 2019 Web服务器之IIS的安装与基本配置
    准备工作:选择一台服务器作为WEB-IIS服务器在WindowsServer2019系统中,IIS角色是可选组件,默认情况下是没有安装的。1.在windows服务器中安装IIS1)打开【服务器管理器】,单击【添加角色和功能】。2)默认选择【基于角色或基于功能的安装】,点击【下一步】。3)默认选项,继续下一步。......
  • Git 基本操作
    目录一、基本概念1、工作区域2、文件状态二、基本使用1、设置用户标识2、初始化仓库3、提交文件到暂存区4、提交到本地库5、推送到远程仓库5.1错误说明6、克隆三、分支操作1、查看分支2、创建分支3、切换分支4、合并分支5、删除分支6、上传分支四、替换本地改动五、......
  • JAVA的数组基本用法
    array在声明数组变量时,需要指出数组类型和数组变量名,例如int[]a;不过这条语句只是声明了变量a,并没有将a初始化为一个真正的数组。应该使用new操作符来创建数组。int[]a=int[100]或者vara=newint[100]数组长度不要求是常数但是一旦创建了数组,就不能再改变它的长度。不过......
  • python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
    一、python线程死锁与递归锁死锁现象所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程代码示例:fromthreadingimport......
  • Linux系统之温度监控工具——lm_sensors的安装和基本使用
    Linux系统之温度监控工具——lm_sensors的安装和基本使用一、lm_sensors介绍lm_sensors,是一款基于linux系统的硬件监控的软件。可以监控主板,CPU的工作电压,温度等数据。rpm包下载地址获取码2344:lm_sensors-3.4.0-6.20160601gitf9185e5.el7.x86_64.rpm二、检测安装环境1.检查......
  • 基本数据类型怎么转化
    在编程语言中,基本数据类型的转换通常可以分为自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。一、自动类型转换自动类型转换是在满足一定条件下,由编程语言自动进行的类型转换,无需程序员显式地指定。转换规则:转换通常是从低精度数据类型向高精度数据类型进行。例如,从较......
  • java基本数据类型
    1、整数数据类型byte:1个字节,8位,256种状态,取值范围为【-128,127】short:2个字节,16位,65536种状态,取值范围为【-32768,32767】int:4个字节,32位,整数类型默认是int类型,取值范围约21亿long:8个字节,64位,long类型表示long类型常量,要加L或者l,建议加L2、小数数据类型float:4个字节,32位,单......
  • 简单聊聊线程跟进程
    简单聊聊线程跟进程在编程中,我们常常会遇到“线程”和“进程”这两个词。它们都是帮助我们同时执行多个任务的工具,但它们之间有一些重要的区别。让我们用简单的语言来聊聊这两个概念,同时提供一些代码示例,让你更容易理解。 什么是进程?进程可以看作是计算机上运行的一个独立......
  • SD(Stable Diffusion)模型的基本工作数据流
    SD(StableDiffusion)模型的基本工作数据流主要涉及图像生成过程,它建立在深度学习的基础上,利用神经网络对图像和文本进行建模和学习。以下是SD模型基本工作数据流的详细步骤:1.数据预处理收集数据:首先,需要收集大量的图像数据和相应的文本描述作为训练数据。这些数据需要满足......