首页 > 系统相关 >【Linux系统编程】冯诺依曼体系、操作系统、进程的认识

【Linux系统编程】冯诺依曼体系、操作系统、进程的认识

时间:2024-06-02 22:59:25浏览次数:17  
标签:操作系统 依曼 程序 内存 Linux 进程 冯诺

目录

一、认识冯诺依曼体系

二、认识操作系统

三、认识进程


一、认识冯诺依曼体系

我们日常使用的计算机,笔记本和我们不常见的计算机如服务器,它们都遵循冯诺依曼体系。

下图是冯诺依曼体系结构的图解:

543043d72bff4d1abc498b0c4d100556.png

我们可以看到冯诺依曼体系结构由以下硬件组成:输入设备、输出设备、存储器、运算器、控制器组成。

注意:这里的存储器其实就是内存。硬件都是一个个独立的个体,各个硬件单元用“线”连接了起来。

我们所认识的计算机,都是由一个个的硬件组件组成。
输入设备:键盘、鼠标、摄像头、话筒、磁盘、网卡等。 输出设备:显示器、播放器硬件、磁盘、网卡等。 中央处理器(CPU):运算器(对数据进行计算任务)和控制器(对计算机硬件运行流程进行控制)等。
一个程序必须加载到存储器中(内存中)才可以运行,这是冯诺依曼体系规定的。

下面我们来思考一个问题:当我们使用电脑微信给朋友发送了一个文件然后并且对方接收到了文件,如何用冯诺依曼体系结构这个过程?

首先,当我们发送文件时,文件会在我们的磁盘(此时是我们电脑的输入设备)中被取出,在被存入存储器(内存中)中,再由存储器传送给CPU经过CPU的解压,压缩,再传给存储器再由存储器传送给网卡(此时是我们电脑中的输出设备),再经过网络了复杂处理,将该文件数据传送到对方电脑里的网卡(此时是对方电脑里的输入设备),在传入到存储器由CPU解压,压缩到磁盘(此时是对方电脑里的磁盘)。

二、认识操作系统

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

1.内核(进程管理,内存管理,文件管理,驱动管理)

2.其他程序(例如函数库,shell程序等等) 其实操作系统就是一个进行对软硬件管理的软件。 操作系统的作用和目的是: 1.管理所有的软硬件资源 2.为用户程序(应用程序)提供一个良好的执行环境 系统调用和库函数的概念: 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。 用户本身不能进行直接访问底层硬件,只能通过操作系统提供的接口来访问操作系统的内部数据。 如我们调用C语言的库函数中的printf函数要想在电脑屏幕上打印内容,其实printf函数就相当于是一个系统调用接口。 733254af836145058eb25dd7e9e9ac47.png

三、认识进程

笼统概念:程序的一个已经加载到内存中的程序,正在执行的程序。 下面我们来详细认识一下进程: 98b34428e025460d93c502f22223cfe7.png 描述进程 -PCB : 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。 课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct

如上图,当磁盘里的程序process进入内存里的操作系统中(因为操作系统也是一个软件程序所以它运行时也要加载到内存里),操作系统会先创建一个结构体对象PCB该结构体对象里存在着process程序的各种属性(比如该程序的代码和数据所在内存区域的指针,进程的优先级,进程状态,进程编号),而不是仅仅只是process程序里的代码数据和进入内存里被操作系统运行这么简单。

因此进程的真正定义就是:操作内核的PCB数据结构对象+程序自身的代码和数据。

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

操作系统是通过管理PCB数据结构对象来对进程进行管理的。操作系统不可能仅仅只对一个进程进行管理,一般会对多个进程运行和管理。

当一个程序在加载到内存形成真正的进程,要先通过操作系统创建一个描述该程序属性的结构体对象PCB,再将多个进程通过某种高效的数据结构组织起来,从而对多个进程进行管理。

因此操作系统对进程的管理遵循:先描述,再管理的原则。

标签:操作系统,依曼,程序,内存,Linux,进程,冯诺
From: https://blog.csdn.net/2401_84568462/article/details/139394238

相关文章

  • Shell 脚本演示 Linux 中的 Wait 命令
    Wait命令是进程管理命令之一。Linux中有不同的进程命令,主要使用5个命令,它们是ps、wait、sleep、kill、exit。ps是进程状态的缩写。它显示有关活动进程的信息。wait命令将暂停调用线程的执行,直到其子进程之一终止。它将返回该命令的退出状态。sleep命令用于将下一个命令的执行......
  • springboot本地运行正常,打包jar包上传Linux服务器后报错,无法正常运行解决方法
    问题描述:springboot本地运行正常,打包jar包上传Linux服务器后报错,无法正常运行说明:以下两种打包方式均在IDEA软件内完成,上传服务器使用宝塔面板管理1.第一次打包方式; 设置完打包路径后,进入build菜单进行打包:  选择build或rebuild进行打包,打包后上传jar包到服务器,运......
  • linux服务器硬件及RAID配置实战
    RAID磁盘阵列介绍是RedundantArrayofIndenpendentDisks的缩写,中文简称为独立冗余磁盘阵列把多个独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAIDLevels)常用......
  • 【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)
    一、DNS(DomainNameSystem)DNS 是一整套从域名映射到 IP 的系统。1、DNS 背景TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名......
  • U-boot、linux内核、根文件系统移植以及程序
    终于这几天把这个移植的流程过了一遍,所以特此回来总结。U-boot移植首先是U-boot移植。Linux系统要启动就必须需要一个bootloader程序,也就说芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NORFLASH,SD,MMC等)拷......
  • Linux下GMAC网络设备:硬件接口、GMAC/PHY、驱动、测试程序
    1嵌入式网络硬件接口如下是常见的嵌入式网络硬件接口框图:SOC集成MAC。MAC通过MII系列接口和PHY之间传输数据,通过MDIO接口初始化配置PHY芯片。PHY芯片和RJ45之间通过4组差分模拟信号传输数据,并驱动RJ45的LED信号灯。RJ45通过网线和外部连接。1.1嵌入式网络几种常见架构......
  • Linux-shell的108个案例
    通用函数库#catdiy_func.shredecho(){ #颜色开头部分 echo-ne"\e[5;31m" #取出要加上颜色的内容 echo-n"$@" #颜色的结束部分 echo-e"\e[0m" #echo-e"\e[5;31m$@\e[0m"}greenecho(){ echo-ne"\e[1;32m" ec......
  • Linux-samba-Ubuntu
    sudoaptinstallsamba-ymkdir-pSharechmod0777Sharesudocp/etc/samba/smb.conf/etc/samba/smb.conf.baksudovim/etc/samba/smb.conf[Ubuntu_22.04] comment=Samba path=/home/grayson/Share public=yes writable=yes available=yes browsea......
  • Linux 进程
    1.什么叫进程答:一个已经加载到内存的程序,叫进程(任务);1.1一个操作系统可以运行多个进程,可以跑多个任务;1.2任何一个进程,在加载到内存的时候,形成真正的进程,操作系统要先创建描述进程的结构体对象——PCB,processctrlblock——进程控制块(进程属性的集合)——struct结构体1.3 ......
  • 使用 Kali Linux 实现 Smurf 攻击
    一、介绍Smurf攻击是一种分布式拒绝服务(DDoS)攻击,利用IP协议中的ICMP(InternetControlMessageProtocol)请求和网络的广播特性,使目标系统被大量ICMP回复包淹没,从而导致系统无法正常提供服务。以下是对Smurf攻击的详细介绍:1.1攻击原理ICMPEcho请求:正常情况下,ICMPEcho请求......