Linux c/c++之进程基础

简介: 这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
  • 进程的定义
  1. 运行中的程序(必须是运行之中的程序)
  2. 不在运行之中的程序只能被称为可执行的程序文件
  3. 进程是操作系统资源调度的基本单位
  4. 线程是操作系统调度的基本单位
  5. 内存的最小单位 比特位(bit)
  6. 内存的最小管理单位 字节(byte)

资源: 内存 fd(文件描述符) cpu时间片 等等...

  • 进程的组成
  1. 数据: 全局变量 静态变量(已初始化,未初始化) 只读变量
  2. 代码: 进程的源代码
  3. 堆栈: 普通变量 动态申请的内存

数据,代码,堆栈均由进程管理

  • 进程的模式

用户模式: 应用程序正在运行

内核模式: 调用系统调用 系统中断

  • 进程的运行

    ps -aue命令(显示进程信息)

top命令(实时展现进程的动态信息)

创建一个进程源代码并手动执行:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(){
    int n = 0;
    while(1){
        printf("开始打印进程id:\n");
        printf("pid: %d : %d",getpid(),n++);
        sleep(1);
    }
    return 0;
}

运行结果:

kill命令

kill 2 进程id 干掉进程(2为信号)

  • 进程的状态

运行 睡眠 挂起 等待 死亡 僵尸状态等...

  • 多个进程运行时的轮循机制

当多个进程同时运行时,操作系统将CPU资源采用分时分片从而处理各个进程,因为运算速率较快,故而使用电脑时感受不到进程之间的切换

相关文章
|
1天前
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
15 1
Linux C/C++之IO多路复用(aio)
|
1天前
|
资源调度 Linux 调度
Linux C/C++之线程基础
这篇文章详细介绍了Linux下C/C++线程的基本概念、创建和管理线程的方法,以及线程同步的各种机制,并通过实例代码展示了线程同步技术的应用。
9 0
Linux C/C++之线程基础
|
1天前
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
7 0
Linux C/C++之IO多路复用(poll,epoll)
|
1天前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
9 0
Linux C/C++之TCP / UDP通信
|
1天前
|
消息中间件 Linux API
Linux c/c++之IPC进程间通信
这篇文章详细介绍了Linux下C/C++进程间通信(IPC)的三种主要技术:共享内存、消息队列和信号量,包括它们的编程模型、API函数原型、优势与缺点,并通过示例代码展示了它们的创建、使用和管理方法。
9 0
Linux c/c++之IPC进程间通信
|
1天前
|
Linux C++
Linux c/c++进程间通信(1)
这篇文章介绍了Linux下C/C++进程间通信的几种方式,包括普通文件、文件映射虚拟内存、管道通信(FIFO),并提供了示例代码和标准输入输出设备的应用。
9 0
Linux c/c++进程间通信(1)
|
1天前
|
Linux C++
Linux c/c++之进程的创建
这篇文章介绍了在Linux环境下使用C/C++创建进程的三种方式:system函数、fork函数以及exec族函数,并展示了它们的代码示例和运行结果。
9 0
Linux c/c++之进程的创建
|
1天前
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
17 0
|
1天前
|
Linux C++
Linux c/c++进程之僵尸进程和守护进程
这篇文章介绍了Linux系统中僵尸进程和守护进程的概念、产生原因、解决方法以及如何创建守护进程。
6 0
|
5月前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解