zoukankan      html  css  js  c++  java
  • Linux之进程管理基础

    进程管理

    1、操作系统基础

        调用:kernel 通过给应用程序提供system call 的方式来提供硬件资源;

        注意:应用程序也包括库文件;

        库文件是运行在ring()上一段程序代码,不对客户直接提供应用;

    2、进程运行原理(一个进程和多个进程)

      一个进程:首先我们先把硬盘里的程序代码加载到内存(复制),再将这段程序放到CPU上运算,此时,这段程序就回去调用(也会自动生成)很多的进程,由这些进程来完成程序所指定的任务:

        在这个过程中,我们需要去解决数据输入与输出,还有存储的问题!

        (不考虑多核,CPU多线程的情况)

        多个进程:在电脑中一般都是存在多个进程的,而CPU只有一个,我们使用time space 的方式来给进程分配固定的时间,来运行1,某个进程只能在轮到自己运行的时候才会被分到CPU上去执行,时间一到,就会自动别踢下来,凑则会执行下一个进程;

      问题:

      1、进程谁先谁后的问题?

        答案:进程优先级解决

      2、如果进程没有运行完就被踢下来了怎么办?

        答案:

    1、程序数据

      2、输入数据输出数据(数据运行一半留下的数据)

      3、进程元数据

        task Struts 数据结构体:他定义了进程数据的存储格式;我们将进程1数据,以及进程元数据tast Struts 中,这种数据结构下,方便CPU快速存储于读取,

       物理地址空间---线性地址空间

      内进程在运行后的一些数据,通过线性地址对应的物理地址,存储到内存(页框page):MMU(内存管理单元)就是用来将不连续的物理地址转换为连续的线性地址

      这些分开的页框的数据又分为二种组织形式::1、数据链表2、双向链表

      3、进程造反了怎么办?

        答案:Linux结构下进程也是树形结构------PStree

        内核管理不会去直接管理:一般所有的进程都由上一级进程来管理---父子进程概念;

        最大的进程---init 有权限去管理所有的进程;

        正常情况:

        1、如何生成子进程

          写实复制:

          父进程在需要完成一项工作的时候自己无法完成,则需要生成对应的子进程来完成这项工作,并且把自己的内存空间在中的数据复制一份交给子进程,用来存储自己吃所有运行数据----这个过程我们就叫做写实复制;

        2、子进程完成任务,如果关闭

          自己吃任务完成,功成身退,交出所有占用资源,再由父进程关闭子进程,这个周期结束了;

    3、进程优先级:

        0-139:

        0-99 守护进程 越大越优先

        100-139:普通进程 越小越优先

        【特性:普通用户可以转让自己的优先级】

        nice值:定义普通进程的优先级,-19,-20

        轮了一圈怎么办?

        在我们内存上,会提供一个空间;这个空间会专门用来存放运行过后的进程;

        当所有的进程运行完成完成一遍,这个空间,就会和原有空间对调;在提供给CPU读取,

        一直轮换,直到进程运行完整

    4、进程间的通讯原理

      1、主机内进程通讯

        single 信号通讯

          共享内存

          管道形式

      2、主机间的进程通讯

        streams ------ rpc

        socket 

    5、进程类型:

      守护进程--------维护系统的正常运行

      普通进程--------提供应用

       另外一种分类方式:戈恩局占有资源的不同

       占用CPU多进程-------后台运行进程

       占用内存多的进程-------前台要显示进程

    6、进程的状态

      进程和程序比较起来,进程是有生命周期的,他会死去;

      1、running运行状态

      2、sleeping状态

      3、stop停止状态

      4、zombie僵死状态

      5、中断

  • 相关阅读:
    python深浅copy探究
    构建squid代理服务器
    python列表和元组操作
    python字符串操作
    Apache虚拟主机
    Apache访问控制
    部署AWStats分析系统
    LAMP平台部署
    二分查找
    设计模式六大原则
  • 原文地址:https://www.cnblogs.com/wangshilin/p/11431146.html
Copyright © 2011-2022 走看看