【僵尸进程和文件系统调用】

news2024/11/19 10:34:06

目录

  • 虚拟空间物理空间
  • 僵尸进程
    • 僵尸进程产生
    • 僵尸进程的解决
  • 孤儿进程
  • 文件系统调用

虚拟空间物理空间

内存与磁盘的运行速度1:20
x86 32位 4G–> 物理内存:寻址能力4G
4G供内核1G,用户态的3G,
虚拟空间4G,虚拟空间可以通过页表映射到物理内存上,理论上可以通过虚拟空间将物理内存占满,但是实际上是占不满的。因为跑个程序一般占几十个页面,也就是几十K,所以3~4个G一般占不完。(虚拟内存实际上是不存在的)
页表信息在哪查看?
一个进程的信息都在PCB中保存,所以一个进程的页表信息也在PCB中保存,(一个进程的创建先出现PID,接着才会出现进程实体。一个进程的结束,进程实体先消失,紧接着PID才会消失)。

僵尸进程

僵尸进程产生

僵尸进程:子进程先于父进程结束,父进程没有回收子进程,子进程进入僵尸进程。子进程的退出,父进程未获取子进程的退出码,所以子进程进入僵尸进程。
僵尸进程代码举例:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(){
int n=0;
char *s=NULL;
pid_t pid=fork();
if(pid==0){//子进程
n=3;
s="child";
}else{//父进程
n=7;
s="parent";
}
for(int i=0;i<n;i++){
printf("pid=%d,ppid=%d,s=%s\n",getpid(),getppid(),s);//getpid()获取当前进程pid,getppid()获取当前进程父进程的pid
sleep(1);
}
return 0;
}

通过ps命令查看
在这里插入图片描述

僵尸进程的解决

子进程结束之后父进程获取子进程的退出码便不会出现僵尸进程。
父进程通过wait命令等待子进程结束之后获取子进程的退出码然后父进程运行。
代码:
在这里插入图片描述

孤儿进程

孤儿进程:父进程先于子进程结束,子进程的父进程由init进程接管子进程。
代码举例:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(){
int n=0;
char *s=NULL;
pid_t pid=fork();
if(pid==0){//子进程
n=7;
s="child";
}else{//父进程
n=3;
s="parent";
}
for(int i=0;i<n;i++){
printf("pid=%d,ppid=%d,s=%s\n",getpid(),getppid(),s);//getpid()获取当前进程pid,getppid()获取当前进程父进程的pid
sleep(1);
}
return 0;
}

ps -f命令查看
在这里插入图片描述

文件系统调用

程序调用库函数,比如./main程序调用printf库函数,也就是系统调用wrinte,需要从用户空间嵌入内核空间,取得内核支持,从而打印到屏幕(硬件设备)上。
也有一部分函数不需要内核的支持比如:strlen …strcmp…

创建打开文件:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

周阳老师JUC并发编程

1. 序章 1&#xff09;JUC是什么&#xff1f; java.util.concurrent在并发编程中使用的工具包 对JUC知识的高阶内容讲解和实战增强 2&#xff09;为什么学习并用好多线程极其重要&#xff1f; 硬件方面&#xff1a; 摩尔定律: 它是由英特尔创始人之一Gordon Moore(戈登摩尔…

Linux 下编译实现C/Fortran调用动态库

目录 FORTRAN语言 生成动态库Demo 查看动态库中的函数 Fortran语言 FORTRAN语言是Formula Translation的缩写&#xff0c;意为“公式翻译”。它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的&#xff0c;其数值计算的功能较强。 FORTRAN语言是…

样式补充(精灵图、背景图片、阴影),项目前置认知、结构搭建

一、网页制作 根目录 图片文件夹&#xff1a;images 样式文件夹&#xff1a;CSS 首页&#xff1a;index.html <link rel"stylesheet" href"./CSS/index.css"> 二、项目样式补充 1. 精灵图 场景&#xff1a;项目中将多张小图片&#xff0c;合并…

基于粒子群算法训练常规自动编码器附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

docker安装mysql,tomcat,redis,nginx

docker安装常用应用安装mysql解决docker mysql5.7中文乱码的问题开启防火墙指定端口docker MySQL容器被删除后数据恢复docker 配置MySQL主从创建master创建slave配置主从测试安装tomcat安装redis安装nginx安装mysql docker安装之前&#xff0c;需要查看宿主机上是否已安装&…

基于matlab仿真多普勒效应及其影响(附源码)

目录 一、介绍 二、估计直升机的叶片速度 三、直升机回声模拟 四、叶片返回微多普勒分析 五、汽车雷达中的行人识别 六、行人微多普勒提取 七、总结 八、程序 本例介绍了由于目标旋转而对目标进行雷达回波时微多普勒效应的基本概念。可以使用微多普勒特征来帮助识别目标…

UE4 回合游戏项目 16- 控制玩家

在上一节&#xff08;UE4 回合游戏项目 15- 生成玩家、控制玩家&#xff09;基础上&#xff0c;继续完善控制玩家的步骤 步骤&#xff1a; 1.打开1lantu&#xff0c;将Alpha的值设为1&#xff0c;这样玩家控制的角色会随着鼠标的移动而产生一个偏头的效果 2.接下来给角色添加…

java设计模式之原型模式

一&#xff1a;原型模式 1.什么是原型模式? 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 基本介绍 1.原型模式(Prototype模式)是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0…

STM32CubeMX学习笔记(47)——USB接口使用(MSC基于内部Flash模拟U盘)

一、USB简介 USB&#xff08;Universal Serial BUS&#xff09;通用串行总线&#xff0c;是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、…

数据库知识之图的创建以及各种遍历、生成树的形成

利用邻接矩阵创建图并打印输出利用递归完成dfs算法遍历利用非递归完成bfs算法遍历利用prim算法得出最小生成树利用kruskal算法得出最小生成树 #include <iostream> #include <cstdlib>//包含一些特定函数 #include <string> //邻接矩阵结构存储图 #defin…

量子计算(六):量子计算软件介绍

文章目录 量子计算软件介绍 一、量子语言 二、量子软件开发包 三、量子云平台 量子计算软件介绍 一、量子语言 由于当前量子计算机的通用体系架构未得到统一&#xff0c;在硬件层面上的技术路线也未最终确定&#xff0c;所以目前还无法确定哪种量子机器指令集相对更科学、…

2010年408大题总结

2010年408大题第41题第42题第43题第44题第45题第46题第47题第41题 这个考的是散列表&#xff08;巧了&#xff0c;我没复习&#xff0c;这就去看&#xff09; 第一个要记住的是装填因子&#xff0c;关键字个数/装填因子 数组长度 第二个是线性探测再散列&#xff0c;表示如果当…

Android App开发之安全加固中反编译、代码混淆、第三方加固以及重签名的讲解及实战(图文解释 简单易懂)

觉得有帮助请点赞关注收藏~~~ 一、反编译 编译是把代码编译为程序&#xff0c;反编译是把程序破解为代码。 下面介绍反编译的完整过程 首先准备反编译的三个工具&#xff0c;分别是apktool&#xff0c;dex2jar&#xff0c;jd-gui 注意下载它们的最新版本 apktool 对APK文件解…

ASEMI整流桥UD6KB100,UD6KB100尺寸,UD6KB100特征

编辑-Z ASEMI整流桥UD6KB100参数&#xff1a; 型号&#xff1a;UD6KB100 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;1000V RMS反向电压VR(RMS)&#xff1a;700 平均整流输出电流&#xff08;IO&#xff09;&#xff1a;6A 峰值正向浪涌电流&#xff…

imx6ull内置温度传感器实践1:输出一个采样

前言 先写代码&#xff0c;然后再一个问题&#xff0c;一个问题分析。不是应该先分析问题&#xff0c;再写代码吗&#xff1f;因为笨呗。分析不明白。只有看到现象&#xff0c;才能明白手册上说的是啥意思。 实例1 主要完成以下几个事情 1 创建一个misc驱动 2 在驱动中将寄存…

【HDU No. 1232】 畅通工程

【HDU No. 1232】 畅通工程 杭电OJ 题目地址 【题意】 现有城镇道路统计表&#xff0c;表中列出了每条直接相连的城镇道路。“畅通工程”的目标是使全省任意两个城镇间都可以通过道路连接&#xff08;间接通过路连接也可以&#xff09;。问最少还需要建设多少条道路&#xff…

JUC并发编程第一篇,复习线程基础知识

JUC并发编程第一篇&#xff0c;复习线程基础知识一、为什么多线程极其重要&#xff1f;二、从start一个线程开始认识多线程三、进程、线程和管程四、用户线程和守护线程一、为什么多线程极其重要&#xff1f; 硬件方面&#xff1a;摩尔定律失效 摩尔定律 价格不变时&#xff0…

Java毕业设计基于springboot 美妆化妆品销售购物网站多商家 前后端分离node

美妆化妆品是当前很多女性的必备用品&#xff0c;所以为了能够让更多的女士用上物美价廉的化妆品我们开发了本系统。基于springboot 美妆化妆品销售购物网站本系统以java为核心开发技术&#xff0c;结合springboot VUE框架实现了一个美妆化妆品销售管理系统。美妆化妆品销售管理…

InheritableThreadLocal

补充:关于ThreadLocal,请看这篇文章关于ThreadLocal内存泄漏的问题_小星向上的博客-CSDN博客 引言:最近在查看shiro登录成功后,获取当前登录人的信息时发现了里面使用了InheritableThreadLocal,,但是我好奇,如果我在里面新建了一个线程,那怎么获取登录人的信息呢,结果发现shir…

(经典dp) 骨牌问题 2*n 3*n n*m

文章目录前言题目2*n3*nn*mn < 5 && m < 1e9n*m < 100END前言 用1*2的骨牌铺满一个平面&#xff0c;是非常经典的一系列dp题目 (各大平台几乎都有这类题) 并且随着平面的要求不同&#xff0c;难度也是层层递增 对于n*m若数据量不同&#xff0c;则对应处理的…