Linux 进程原理简介

        进程简介

进程:process     

    什么是进程?
          我们知道系统仅仅认识二进制文件,当我们让系统工作的时候就需要启动一个二进制文件,该二进制文件就是程序 进程可以比喻成一个容器 .以分配给处理器并由处理器执行的一个实体当CPU在执行是其他的程序就得等待 称为CPU等待序列,每个程序都有3组权限r,w,x  所以不同的用户身份执行某个程序,系统给定的权限也不同。

以前的计算机处理数据是单人单用户的, 现在用户提出多任务的尝试 系统资源分配多任务并行运行,提供一种物理隔离功能,同时A进程是不能访问 B进程的物理空间  


    任何地址为 32位的计算机虚拟内存 有4G内存 指的是虚拟内存映射到的物理内存 然而有人说我的电脑只有512M 那其他的内存空间呢?

    物理内存除了系统所装的内存外,从硬盘上划一块空间当做虚拟内存  虚拟内存映射到-->物理 页面 

  

            在Linux系统中:“触发任何一个时间,系统都会将它定义成一个进程,并其给这个进程一个ID,称为PID,同时根据启动这个进程的用户与相关属性关系,给这个PID一        组有效的权限设置”因此,这个PID 能在系统上进行的动作就与PID的权限有关了。

            但是什么是“触发事件”,什么情况下会触发一个事件? 同一个事件是否被多次触发呢?

    

  例如:在当前bash环境下,再触发一次bash,并以 “ps -l”命令查看程序输出的相关信息。

  可以看出来第一个BASH 的PID 和 第二个PPID 是一样的 因为第二个PPID是继承第一个PID  下面引入父进程和子进程

 子进程与父进程: 
       init: 任何进程都是由此进程复制而成 诞生其他进程子进程 或子子进程 
             把数据改改然后加上进程号 得到一个新的进程 所以linux下的进程都是有父进程的 除了init外
        
   内核控制只占1G  用户空间3G    4G的虚拟内存空间,与硬件交互的只有内核空间 
   用户空间发起 保存在磁盘上  真正与磁盘交换的是 内核空间,系统调用彼此间是隔离的
   内核空间与用户空间交互的方法有:系统调用 和 中断


   什么是线程?
         比进程更轻量级的进程
   4G的虚拟空间 自己建的服务器自己访问
   线程共享堆和栈  四个线程同时写入一个进程中 内存可能会被破坏 所以线程要用一系列的技术实现线程的队列排序
   
   多用户、多任务的系统资源分配问题
      多用户,多任务的实施有很多的好处,但因为用户的增加,在管理上也将导致问题。当用户达到一定的数量的时候,服务器便需要升级了因为CUP 的预算与RAM 的大小可    能不足以应付日常的工作 
  
   进程间通讯  通过各种手段实现 共享内存空间      
   系统工程师 调优 就是调整交互式进程  键盘输入数据
   

   系统或网络服务:常驻内存程序

    从前面的操作执行命令我们可以看出来,执行的命令都很简单,/mkdir/rm/cp/mv 等命令管理文件 和 /chmod/chow/passwd、类命令权限管理命令等 这些程序都是执网了就结束了,该PID就自动停止释放了  ,其实还有一种程序 一直是处于运行状态的我们叫他“常驻内存程序”

如 :定时启动 系统每分钟都会自动扫描的/etc/crontab以及相关的配置文件,syslog 等等, 大部分负责网络服务的也是“常驻内存程序” 像 Apache,named ,postfix. 网络功能开启后负责网络端口的实时监听,一旦客户端发出请求 服务器端就给予响应的响应 

   

 Linux 的多用户、多任务环境

我们现在知道,Linux在执行命令的时候,系统会给定操作一个PID ,根据这个PID启用一组响应的权限,所以我们可以这样简单的了解为 ,为什么Linux 这么多的用户,但是每个人却可以拥有自己的运行环境

     多人环境

  Linux最优秀的地方就在于它的多用户、多环境。 Linux允许不同的人使用,而且每个人都有特殊的权限,因为在每个人登录到SHELL的时候 获取的PID都是不同的,但只有一   个人具有最高管理权限ROOT (系统管理员),其他的人都必须要受到一些限制 ,每个用户进入到自己的Linux配置环境下,都可以随自己的喜好在~/.bashrc下设置

     多任务环境

在某些操作系统中,可能会遇到这种情况:“这个文件正在使用,您无法打开这个文件”。要将正在执行中的程序关掉之后才能打开这个中间的临时文件,但是,Linux就不会这样,你可以在不用的画面,由不用的用户(SSH 远程联机)操作使用同一个文件,只要有读写权限 就可以打开修改该文件。这是很方便的事情

其实,操作系统的多任务是很复杂的行为,多项工作都由一个CPU来处理。将多个命令触发为系统进程(PID),而这些程序若同时被触发,那么,一个CPU就要同时负责处理许多的工作了,有些时候一个程序不是很消耗系统资源,此时,CPU 就可以进行其他的工作了

     多重登录环境的7个基本终端窗口

在Linux中,默认提供了6个命令行界面登录窗口和一个图形界面, 使用[Alt]+[F1] ...[F7]组合键切换到不同的终端界面,而且每个终端界面还可以是不同的人,在某个程序死  掉的时候 就可以切换到另一个登录界面 KILL 死掉的程序 在重启 Linux几乎不会死机,因为在任何时候,删掉将被困的程序,然后重新执行该程序而不用重新开机。如果我Linux下以命令行界面登录,在屏幕中显示错我信息后,就不能做任何操作了,这是就可以使用默认7个窗口切换  用ps -qux 找到刚刚错我的程序 kill 掉,回到刚刚的终端界面,就可以恢复正常工作了。  每个程序之间可能是独立的,也有可能有依赖性,只要到独立的程序中删掉有问题的程序,它就可以被系统删掉

     多用户、多任务的系统只要分配问题

多用户、多任务有它的好处同时也有坏处 ,当用户越来越多,将导致管理上的问题,用户到达一定的认识后,通常机器就需要升级了,因为CPU 的运算与RAM的容量可能       不足以应付日常工作


后面会接着写进程管理 和 进程调度


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值