您的位置:首页 > 运维架构 > Linux

Linux 进程原理简介

2011-07-26 07:52 295 查看

进程简介

进程: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的容量可能 不足以应付日常工作

后面会接着写进程管理 和 进程调度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: