博客
关于我
【进程】进程的基本概念理解
阅读量:502 次
发布时间:2019-03-07

本文共 1110 字,大约阅读时间需要 3 分钟。

基本概念

冯诺依曼计算机体系结构

冯诺依曼体系结构是现代计算机的基础架构,主要包含以下组成部分:

  • 输入设备:如键盘、鼠标等
  • 输出设备:显示屏、打印机
  • 存储器:内存(RAM)、磁盘(HDD、SSD)
  • 运算器:中央处理单元(CPU)
  • 控制器:南桥和北桥

操作系统

操作系统是计算机的管理软件,主要功能包括:

  • 内核:负责进程管理、内存管理、文件管理、设备驱动管理等核心任务
  • 系统调用:操作系统提供的接口,供程序调用进行各种操作
  • 库函数:对系统调用进行封装,便于开发者使用

进程

进程基本概念

从程序层面看,进程是一个正在执行的程序实例。

从系统层面看,进程是资源的拥有者,负责分配和管理系统资源(CPU、内存等)。

进程描述(PCB)

进程的出现可以用进程控制块(PCB)来描述,系统需要记录进程的各项属性,主要包括:

  • 唯一标识符
  • 状态和退出信息
  • 优先级
  • 程序计数器
  • 内存指针
  • 上下文数据
  • I/O状态信息
  • 记账信息

查看进程的方式

进程信息可以通过以下命令查看:

  • ps aux:显示所有进程
  • ps -elf:显示详细进程信息
  • top:实时监控进程状态

创建进程(fork)

以下是用C语言演示的fork函数程序:

#include 
#include
#include
int main() {
int ret = fork();
if (ret < 0) {
perror("fork");
return 1;
} else if (ret == 0) { // 子进程
printf("I am child : %d!, ret: %d\n", getpid(), ret);
} else { // 父进程
printf("I am father : %d!, ret: %d\n", getpid(), ret);
}
sleep(1);
return 0;
}

进程状态

进程的运行状态包括以下几种:

  • R:运行状态
  • S:睡眠状态
  • D:磁盘睡眠状态
  • T:停止状态
  • X:死亡状态

僵尸进程

定义:当进程退出但父进程未调用wait/waitpid等函数等待时,子进程会成为僵尸进程。

表现:僵尸进程占用系统资源,可能导致内存泄漏。

解决方法

  • 父进程在子进程退出后及时调用wait/waitpid
  • 使用信号函数等待子进程退出

孤儿进程

当父进程提前退出而子进程仍在运行时,子进程会被1号init进程领养,其资源由init回收。

转载地址:http://vsacz.baihongyu.com/

你可能感兴趣的文章
c++之程序流程控制
查看>>
李笑来必读书籍整理
查看>>
Hadoop(十六)之使用Combiner优化MapReduce
查看>>
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
查看>>
C语言编译错误列表
查看>>
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
查看>>
CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
查看>>
python中列表 元组 字典 集合的区别
查看>>
Android DEX加固方案与原理
查看>>
iOS_Runtime3_动态添加方法
查看>>
Leetcode第557题---翻转字符串中的单词
查看>>
Problem G. The Stones Game【取石子博弈 & 思维】
查看>>
Java多线程
查看>>
openssl服务器证书操作
查看>>
我用wxPython搭建GUI量化系统之最小架构的运行
查看>>
selenium+python之切换窗口
查看>>
重载和重写的区别:
查看>>
搭建Vue项目步骤
查看>>
账号转账演示事务
查看>>
SpringBoot找不到@EnableRety注解
查看>>