【Linux系统编程】20.程序、进程、CPU和MMU、PCB

2023-11-03

目录

程序

进程

CPU和MMU

PCB

程序

编译好的二进制文件,存在磁盘上,只占用磁盘资源。

进程

        进程是活跃的程序,占用系统资源,在内存中执行。程序运行起来,产生一个进程。

        程序类似于剧本,进程类似于一场戏,一场戏需要舞台、演员、灯光、道具……同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程。两个终端,各自都有一个bash但彼此ID不同。

CPU和MMU

不同的进程,只有内核是相同的。MMU在CPU内部。

 

PCB

        进程控制块。每个进程在内核中都有一个进程控制块来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。

        task_struct结构体位置:

重点结构体成员:

  • 进程ID

  • 文件描述符表

  • 进程状态:初始态、就绪态、运行态、挂起态、终止态。

  • 进程工作目录位置

  • umask掩码

  • 信号相关资源

  • 用户ID和组ID

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux系统编程】20.程序、进程、CPU和MMU、PCB 的相关文章

  • 应用程序中两个不同版本的库

    考虑一个场景 其中有两个不同版本的共享库 考虑 A 1 so 链接到 B so A 2 so 链接到 C so 现在 B so 和 C so 都链接到 d exe 当 B so 想要调用 A 1 so 中的函数时 它最终会调用 A 2 so
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 如何从 Bash 命令行在后台 Vim 打开另一个文件?

    我正在从使用 Gvim 过渡到使用控制台 Vim 我在 Vim 中打开一个文件 然后暂停 Vim 在命令行上运行一些命令 然后想返回到 Vim Ctrl Z 在正常模式下 暂停 Vim 并返回到控制台 fg可用于将焦点返回到 Vim job
  • 当命令在 Ubuntu 终端中运行时,为什么 Dart 的“Process.start”无法执行 Ubuntu 命令?

    我有命令想用 Dart 调用 命令是sonar runner如果我在普通的 Ubuntu 终端中运行它 它会完美运行 这是因为我已经编辑了PATH in the profile文件 使其成为全局命令 但是 如果我写一个简单的Process
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • python3-pip 安装但找不到 pip3 命令?

    我正在几台计算机上测试Python3 程序 为此 我需要使用 pip3 安装 Python 库 首先 我在每台计算机上安装 python3 pip 每个计算机都运行 Kubuntu 操作系统 一切都很好 然后我用 pip3 安装了我需要的包
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • BPE的原理及代码解析

    BPE 在自然语言处理中 序列到序列模型中 机器翻译 对话 需要设置词表 使用较小的词表 有助于提高系统的性能 BPE在欧洲语系可能表现的更为有效一些 主要由于欧洲语系中存在词缀等概念 BPE训练 BPE的训练和解码范围都是一个词的范围 B
  • 小白怎么入门网络安全,学这两类证书就够了NISP或CISP

    其实网络安全这个门槛 对于当代的年轻人来说 不高也不低 其中NISP证书分为一级 二级 三级 专项 证书由中国信息安全测评中心颁发 持NISP二级证书可与免考兑换CISP证书 因为CISP报考需要工作经验 NISP填补了在校大学生无法考取C
  • SVN 安装与使用教程总结

    转载 http www cnblogs com armyfai p 3985660 html SVN简介 为什么要使用SVN 程序员在编写程序的过程中 每个程序员都会生成很多不同的版本 这就需要程序员有效的管理代码 在需要的时候可以迅速 准
  • Error:在安装elasticsearch和logstash程序出现的报错

    开启logstash服务出现 Failed to start logstash service Unit not found root localhost systemctl start logstash Failed to start l
  • ALAssetsLibrary获取所有图片

    通过创建ALAssetsLibrary 的实例可以访问系统Photos里的图片与视频 这个库包括了保存的图片 从iTunes导入的和从其他设备里面导入的图片 你可以访问所有的分类和保存图片视频 用普通的alloc和init就可以创建ALAs
  • word给公式自动编号、交叉引用

    利用域给公式自动编号 鼠标定位在公式末尾 如下图 注意是蓝框的末尾 在红框的末尾会无法识别 在公式末尾输入一个 号 作用是让编号右对齐 前不要有空格 插入 文档部件 域 如图指示 点击确定 这里的equaltion是自己添加的 后面再说 公
  • 【解释】对用户透明=对用户隐蔽:关系模型的存取路径对用户透明

    在计算机中 从某个角度看不到的特性称该特性是透明的 这个意义上的 透明 与社会生活中的透明含义恰好相反 例如计算机组织对程序员是透明的 就是说计算机组织对程序员来说是看不到的 也不需要看到的 和汉语字典里面的意思不一样 举个栗子 比如数据库
  • 网络安全之sql注入-less1

    less 1 是字符注入 union注入的步骤一般有以下几步 1 判断注入点 2 判断是整型还是字符型 3 判断查询列数 4 判断显示位 5 获取敏感信息 1 判断注入点 我们再Less1中看到 id将作为参数来使用 因此我们输入 http
  • python moviepy学习系列(一)安装及功能模板简介

    Moviepy简介 Moviepy是一个用于视频编辑的Python模块 它可被用于一些基本操作 如剪切 拼接 插入标题 视频合成 即非线性编辑 视频处理和创建高级特效 它可对大多数常见视频格式进行读写 包括GIF 安装方式 Pip安装方式
  • 闻达搭建paddingpadding

    项目地址wenda LLM wenda 闻达 一个LLM调用平台 为小模型外挂知识库查找和设计自动执行动作 实现不亚于于大模型的生成能力 github com git clone https github com wenda LLM wen
  • STM32定时器学习 hal库PWM输入捕获实验

    实验原理 输入捕获实验目的是为了获得脉宽和频率 首先是脉宽的获得 在实际捕获实验中 有两个通道 一个负责捕获上升沿 一个负责下降沿 从上图可以看出 t1 t2 时间就是我们需要测量的高电平时间 假如定时器工作在向上计数模式 测量方法是 首先
  • 特殊的IP地址127.x.x.x的含义

    特殊的IP地址127 x x x的含义 127 0 0 1 127 0 0 1是最常用的一种 表示本地计算机的IP地址 也可以用localhost表示 最常见的用法是 在 Windows 平台下使用快捷键 Win R 打开运行对话框 接着输
  • 十--nodejs原理(buffer)

    1 Buffer 1 Arraybuffer对象是用表示通用的 固定长度的二进制数据缓冲区 Arraybuffer不能直接操作 而是要通过类型数组对象或DataView对象来操作 它们会将缓冲区数据表示为特定格式的数据 并通过这类格式来读写
  • 冲流量显示与服务器通讯异常,科来:如何分析网络异常流量突发

    概述 网络异常流量突发是经常困扰运维管理人员的问题之一 突发流量可能会造成网络的拥塞 从而产生丢包 延时和抖动 导致网络服务质量下降 不仅如此 突发流量还可能存在安全风险 例如 DoS攻击 蠕虫 窃密等 会对网络和业务系统造成更大的危害 常
  • 学习C++项目——数据库知识学习(主从原理,分离配置,远程工具只是了解,都没有实现)

    学习数据库知识 一 思路和学习方法 本文学习于 B站平台UP主 IT 小当家 学习 MySQL 数据库 如里面加以自己的一些学习复现和理解 如有侵权会进行删除 学习Oracle以后也可以参考之前学习的UP主 C语言技术网 www freec
  • Java作用域与生命周期

    基本数据类型的作用域 作用域决定了在其内的变量名的可用性和生命周期 与c c 一样 作用域由花括号的位置决定 int x 5 x y都可用 int y 6 只有x可用 尽管下列代码在c c 中合法 但在Java中不能使用 c c 中将一个较
  • 《我的眼睛--图灵识别》第一章:起源

    我的眼睛 图灵识别 第一章 起源 账号登录 相信经常上网的你对上面这张图肯定不会陌生 特别是在注册新账号 账号登录或发表新文章之类的时候 它们都有可能出现要求我们输入 那么肯定会有人提出疑问 这些所谓的验证图形码跟我要做的事情毫无任何关系
  • Ubuntu开机后卡在登陆界面进去不

    系统 Ubuntu18 03 系统跑代码卡死了 导致鼠标键盘都用不了 直接强制关机后 卡在登陆界面进不去 步骤 1 系统启动后 在BIOS引导界面按 ESC 键进入选择菜单 选择第一个 Ubuntu 按 e 键进入编辑模式 2 在 hand
  • linux-ubuntu-bash切换zsh问题

    bash切换zsh问题记录 简单切换 sudo chsh s zsh 如果该命令没有生效 则可以直接修改配置文件 sudo gedit etc passwd 将 bin zsh改为 bin zsh
  • 【Linux系统编程】20.程序、进程、CPU和MMU、PCB

    目录 程序 进程 CPU和MMU PCB 程序 编译好的二进制文件 存在磁盘上 只占用磁盘资源 进程 进程是活跃的程序 占用系统资源 在内存中执行 程序运行起来 产生一个进程 程序类似于剧本 进程类似于一场戏 一场戏需要舞台 演员 灯光 道