zoukankan      html  css  js  c++  java
  • 进程概念

    进程概念

    进程是一个动态的概念,程序是个静态的文件。

    内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等

    Process: 运行中的程序的一个副本,是被载入内存的一个指令集合

    进程ID(Process ID,PID)号码被用来标记各个进程
    UID、GID、和SELinux语境决定对文件系统的存取和访问权限,
    通常从执行进程的用户来继承
    存在生命周期

    task struct:Linux内核存储进程信息的数据结构格式
    task list:多个任务的的task struct组成的链表
    进程创建:

    init:第一个进程
    父子关系
    进程:都由其父进程创建,CoW(写实复制,即)
    fork(), clone()

    进程的基本状态

    创建状态:进程在创建时需要申请一个空白PCB(process control block进程控制块),向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态

    就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行

    执行状态:进程处于就绪状态被调度后,进程进入执行状态

    阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用

    终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

    状态之间转换六种情况

    运行——>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。

    就绪——>运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU

    运行——>阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求

    阻塞——>就绪:进程所等待的事件已经发生,就进入就绪队列
    以下两种状态是不可能发生的:

    阻塞——>运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取

    就绪——>阻塞:就绪态根本就没有执行,谈不上进入阻塞态

    时序型处理过程:

    进程优先级

    进程优先级:

    系统优先级:数字越小,优先级越高
    0-139(CentOS4,5)
    各有140个运行队列和过期队列

    0-98,99(CentOS6)
    实时优先级: 99-0 值最大优先级最高

    nice值:-20到19,对应系统优先级100-139或99

    进程内存

    Page Frame: 页框,用存储页面数据,存储Page 4k
    LRU:Least Recently Used 近期最少使用算法,释放内存
    物理地址空间和线性地址空间
    MMU:Memory Management Unit负责转换线性和物理地址
    TLB:Translation Lookaside Buffer 翻译后备缓冲器,用于保存虚拟地址和物理地址映射关系的缓存

    IPC: Inter Process Communication

    同一主机: signal:信号
    shm: shared memory
    semaphore:信号量,一种计数器
    不同主机:socket: IP和端口号
    RPC: remote procedure call
    MQ:消息队列,Kafka,ActiveMQ

    进程状态

    Linux内核:抢占式多任务

    进程类型:

    守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
    前台进程:跟终端相关,通过终端启动的进程
    注意:两者可相互转化
    进程状态:
    运行态:running
    就绪态:ready
    睡眠态:
    可中断:interruptable
    不可中断:uninterruptable
    停止态:stopped,暂停于内存,但不会被调度,除非手动启动
    僵死态:zombie,结束进程,父进程结束前,子进程不关闭

  • 相关阅读:
    LeetCode 1245. Tree Diameter
    LeetCode 1152. Analyze User Website Visit Pattern
    LeetCode 1223. Dice Roll Simulation
    LeetCode 912. Sort an Array
    LeetCode 993. Cousins in Binary Tree
    LeetCode 1047. Remove All Adjacent Duplicates In String
    LeetCode 390. Elimination Game
    LeetCode 1209. Remove All Adjacent Duplicates in String II
    LeetCode 797. All Paths From Source to Target
    LeetCode 1029. Two City Scheduling
  • 原文地址:https://www.cnblogs.com/momenglin/p/8485984.html
Copyright © 2011-2022 走看看