0802|IO进程线程 day5 进程概念

一、进程的基础

1.1 什么是进程

1)进程程序一次执行过程

  • 程序:是静态的,它是存储在外存上的可执行二进制文件;
  • 进程:动态的概念,它是程序的一次执行过程,包括了进程的创建,调度、消亡,是存在于内存中的。

2)进程是独立的,可以被CPU调度的任务

  • Linux中的调度机制:时间片轮询机制;
  • 操作系统会给每一个进程分配时间片,当时间片结束后,cpu资源会切走,当前进程等待下一次调度。

3)进程在被调度的时候,系统会分配和释放各种资源(CPU资源,内存资源,进程调度块(PCB))。

1.2 进程的五种状态及五态图

五种状态:

  1. 创建态
  2. 就绪态
  3. 运行态
  4. 阻塞态
  5. 终止态

ps:进程运行过程中有5种种状态,运行态只是进程运行过程中的一种状态。

五态图:

0802|IO进程线程 day5 进程概念_第1张图片

1.3 进程的内存分布【重点】

1)内存分布

  1. 在Linux操作系统中,每个进程都会被分配4G的内存空间(虚拟内存);
  2. 其中0-3G是用户空间代码使用,每个进程相互独立;
  3. 其中3-4G是内核空间,所有进程共享。

每个进程的用户空间都有自己独立的区:

1> 静态存储区 2> 堆区 3> 栈区

0802|IO进程线程 day5 进程概念_第2张图片

2)虚拟内存和物理内存

虚拟内存和物理内存之间的关系--->映射关系

物理内存:

  • 硬件上(内存条上)真正存在的存储空间。

虚拟内存:

  • 程序启动后,会分配4G的虚拟地址空间,用户只能访问到虚拟地址空间。当要使用的时候,由虚拟地址映射到物理地址上。
  • 32位操作系统,指针变量的大小为4bytes,取值范围为[0, 2^32-1],所以寻址范围为4G
  • 64位操作系统,指针变量的大小为8bytes,只取了前48bit存储地址,所以寻址范围是256TB

虚拟内存的目的:

  • 动态分配内存。

0802|IO进程线程 day5 进程概念_第3张图片

 

1.4 进程是资源分配的最小单位【重点】

以进程为单位分配和释放各种资源。

  1. 内存资源的申请和释放;
  2. 文件描述符表:每个进程都有自己的1024个文件描述符;
  3. 时间片;
  4. 管理自己的虚拟地址空间,使用的时候映射到物理地址上;

... ...

1.5 进程标识

操作系统会给每一个进程分配一个编号,这个编号就是进程号。

主要进程标识

  • 进程号:PID (process id)
  • 父进程号:PPID (parent process id)
  • 进程组号:PGID (process group id) 若干个进程的集合,称之为进程组,默认情况下新创建的进程会继承父进程的组ID
  • 会话组号:SID (session id) 若干个进程组的集合,称之为会话组,默认情况下新创建的进程会继承父进程的会话ID

操作系统刚启动的时候,会启动三个进程。三个特殊的进程号:

  • 0 idle进程 操作系统引导程序,创建1号,2号进程。
  • 1 init进程 初始化内核的各个模块,当内核启动完成后,用于收养孤儿进程(没有父进程的进程)
  • 2 kthreadd进程 用于进程间调度。

1.6 进程相关的shell指令

1) ps -aux

功能:显示进程占计算机资源的百分比;

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

2) ps -ajx

功能:显示进程之间的关系

PPID     PID    PGID    SID     TTY       TPGID STAT   UID   TIME COMMAND
父进程  进程号  进程组  会话组

3) pidof

功能:根据进程名字获取PID号;
格式:
    pidof a.out

4) pstree

功能:显示进程关系树

5) kill

kill -9  pid            根据pid号杀死进程
killall -9  进程名字    根据进程名字杀死进程

6) 进程的STAT

               D    不能被中断的阻塞状态
               R    运行状态
               S    可以被中断的阻塞状态
               T    被信号控制的挂起状态
               t    进程被调试的挂起状态

               X    死亡态,死亡是一瞬间的,该状态永远看不到
               Z    僵尸状态,当前进程退出后,父进程没有为其收尸。
               


               <    高优先级的
               N    低优先级的
               L    有些页被锁进内存
               s    会话组组长
               l    多线程
               +    运行在前端

你可能感兴趣的:(服务器,linux,运维)