当前位置: 首页 > news >正文

想在公司局域网做建网站建设网站需要什么东西

想在公司局域网做建网站,建设网站需要什么东西,网站后台管理系统权限,制作网站公司定价文章目录 一、什么是进程二、进程的状态三、Linux是如何做的#xff1f;3.1 R状态3.2 S状态3.3 D状态3.4 T状态3.5 t状态3.6 X状态3.7 Z状态 四、僵尸进程4.1 僵尸进程危害 五、孤儿进程 一、什么是进程 对于进程理解来说#xff0c;在Windows上是也可以观察到的#xff0c… 文章目录 一、什么是进程二、进程的状态三、Linux是如何做的3.1 R状态3.2 S状态3.3 D状态3.4 T状态3.5 t状态3.6 X状态3.7 Z状态 四、僵尸进程4.1 僵尸进程危害 五、孤儿进程 一、什么是进程 对于进程理解来说在Windows上是也可以观察到的右键状态栏的任务管理器就可以看到 运行一个进程是需要占用CPU和内存的在我们平时运行一个进程的时候Windows直接双击后系统将磁盘里的exe文件加载到内存当中这个时候就当运行起来的时候就开启了一个进程这里要注意加载到内存中中是不算进程的只有当运行起来后才算是进程 --进程 PCB 自己的代码和数据对应的每一个进程都有一个PCB结构体操作系统需要通过此结构体找对应的二进制当有多个进程被运行起来的时候就会产生多个PCB结构体这个时候需要组织可以是链表或者其他更高效的数据结构起来进行管理这就产生一个重要的概念-------先描述再组织 每个进程都对应的每个PCB结构体当运行的时候需要进行排队CPU就可以通过PCB找到原代码再把代码交给CPU运行 二、进程的状态 每个进程都有自己的一个状态告诉操作系统正在干什么将来要干什么也就是说进程的多种状态本质都是为了满足未来的某种使用场景。 就比如Windows上的任务管理器也有显示进程的状态 在操作系统上有三种状态 运行状态挂起状态阻塞状态 运行状态从计算机的硬件出发我们所写的代码在硬盘中要让程序运行起来就要加载到内存当中 每一个程序进程都会有一个属于自己的PCB通过PCB来进行排队等待CPU的调度为了方便调度管理操作系统会维护一个运行队列所有就绪状态的进程的PCB会被加入到这个队列当中 CPU在调度执行时就会通过这个运行队列拿到进程的PCB进而调度执行该进程在排队的时候就是运行状态。 挂起状态内存满负荷时又要增加新的进程显然是不行的。所以操作系统会观察内存中的哪些进程没有被放在任何一个队列里面(在内存里面啥也不干)找到以后就把此进程的代码和数据短期内置换到磁盘上仅保留此进程的PCB。腾出的这一块空间供新的进程使用。针对于这种情况操作系统会将阻塞进程的代码和数据置换到外设此时该进程的状态就被称为挂起状态 其中阻塞进程的代码和数据一般会存放在磁盘的swap分区当进程被操作系统调度时被置换到外设的代码和数据又会重新加载到内存 一般情况下swap分区的大小不会太大大概等于内存的大小过大的swap分区会导致操作系统过于依赖swap分区导致效率变低 阻塞状态在CPU执行一个进程的时候可能会需要访问系统的某些资源就比如在C语言中写的scanf()在使用这个函数的时候需要调用键盘等待键盘输入数据当进程需要键盘资源的时候会将进程的PCB加入到硬件设备结构描述的等待队列当中并且把PCB设置为阻塞状态当PCB在这个等待队列中等待数据资源时这个状态就叫做阻塞状态 三、Linux是如何做的 在Linux内核中是这样定义的 /* * The task state array is a strange bitmap of * reasons to sleep. Thus running is zero, and * you can test for combinations of others with * simple bit tests. */ static const char * const task_state_array[] {R (running), /* 0 */S (sleeping), /* 1 */D (disk sleep), /* 2 */T (stopped), /* 4 */t (tracing stop), /* 8 */X (dead), /* 16 */Z (zombie), /* 32 */ };先简单描述一下这些状态 R (Running):该进程正在运行中。S (Sleep):该进程目前正在睡眠状态但可以被唤醒。D :不可被唤醒的睡眠状态通常这个进程可能在等待I/O的情况。T :停止状态发送一个暂停信号给进程进程就暂停了。t :追踪停止状态通常在断点调试时进程处于此状态。X :死亡状态这个状态是用来告诉操作系统的所以我们观察不到此状态。Z (Zombie):僵尸状态进程已经死亡但是却无法被删除至内存外。 下面我们挨个介绍一下以下用Linux来查看 这里我们还需要了解一个概念进程是有依赖的就比如我运行这个C语言程序其父进程是bashpid是本进程的idppid是父进程的id 3.1 R状态 下面我们编写这样一段代码是一个死循环这样可以观察到进程 #includestdio.h #includeunistd.h int main() {while(1){}return 0; } 普通查看进程可以这样查看 ps -aux | head -1 ps -aux | grep a.out我们还可以用shell命令来一直刷新观察 while :; do ps ajx | head -1 ps ajx | grep a.out | grep -v grep; sleep 1; done这里看到是R是代表在前台运行在运行的时候可以使用ctrlc进行中断中断后进程也就退出了 我们可以让此程序到后台运行 在命令后面加“”符号 这里的pid进程id是唯一的标识此进程ppid代表父进程 在运行起来后看到那个号就没有了说明是在后台运行中 想要杀死这个程序就需要使用kill命令来进行杀死 kill -9 27165这里使用kill -9命令比较麻烦需要找到进程的id我们还有一个命令 killall -9 a.out这样就可以不用输入进程id输入此进程的名字即可 我们再补充一个概念每一个进程运行起来的时候都有一个文件被创建 在根目录下的proc 3.2 S状态 这个状态表示此进程正在睡眠但是可以被唤醒 下面可以进行演示一下 #includestdio.h #includeunistd.h int main() {while(1){printf(hello world\n);}return 0; } 在上面的那段代码中添加了一个printf打印函数同样是运行但是这里为什么是S状态呢 这是因为CPU运行的速度很快一直需要请求显示器响应CPU多数的时候是在等待所以就显示S 3.3 D状态 此状态是深度休眠状态不可被唤醒是为磁盘准备的 当进程需要大量的数据写入磁盘的时候等待磁盘写入的进程状态就是休眠上面也将过了 在内存严重不足的情况下操作系统没办法时会通过杀死进程的方式来节省资源如果在等待的过程中进程被操作系统杀掉并且磁盘写入数据失败那么就会导致数据无法再加载数据丢失为了避免这种情况就可以把等待数据写入的进程状态设为D状态 D状态无法被杀掉OS也不行只能等待执行完毕后状态转换 这个D状态不好验证如果看到此状态说明计算机就要快挂了~~ 3.4 T状态 此状态是停止状态可以通过发送 SIGSTOP 信号给进程来停止T进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行 可以使用kill -l命令查看一下发送信号的类型 3.5 t状态 这个小写的t状态也是停止状态 主要出现在程序Debug时在Debug的时候遇到断点进程就暂停此时就是t状态 D状态、T状态、t状态其实都是阻塞状态阻塞可以等待硬件资源也可以等待软件资源 3.6 X状态 X状态死亡状态就是我们常说的终止状态它是一个瞬时状态不会在任务列表里看到这个状态 3.7 Z状态 最后就是Zzombie僵尸状态僵尸状态较为复杂Linux系统中的僵尸进程状态也是一种特殊的进程状态通常是指一个子进程已经结束运行但其父进程还未对其进行善后处理。如果不及时清理僵尸进程会导致系统资源泄漏影响系统性能甚至造成系统崩溃 四、僵尸进程 当有一个进程要退出的时候它是直接原地消失、释放空间的吗 当进程退出的时候它是不会立即释放空间的它的PCB会保存一段时间让父进程或者操作系统读取让父进程或操作系统知道这个进程即将退出了然后父进程或者操作系统释放掉进程占用的资源和空间。一般情况下清理进程资源空间的操作都是父进程。 那么僵尸进程指的是什么呢就是进程退出时依然会在内存里面待一段时间如果父进程没有能力将此进程完整地释放掉造成这个进程一直在内存里面此时这个进程就是僵尸进程。 下面我们创建一个子进程来看一看 #includestdio.h #include sys/types.h #include unistd.h int main() {pid_t id fork(); while(1){if(id 0){printf(我是子进程,pid:%d,ppid:%d\n,getpid(),getppid());sleep(1);}else if(id 0){printf(我是父进程,pid:%d,ppid:%d\n,getpid(),getppid());sleep(2);}} return 0; }使用man 的2号手册可以看到fork的用法fork有两个返回值父子进程代码共享数据各自开辟空间私有一份采用写时拷贝 在return val这里可以看到返回值如果成功返回0失败返回-1 在程序上面的那个程序的时候杀死子进程后子进程的状态就变成了僵尸进程 僵尸进程通常是无法再进行管理的所以我们不能直接杀kill掉它而是交给操作系统来处理这个进程。 4.1 僵尸进程危害 进程的退出状态必须被维持下去因为他要告诉关心它的进程父进程你交给我的任务我办的怎么样了。可父进程如果一直不读取那子进程就一直处于Z状态是的维护退出状态本身就是要用数据维护也属于进程基本信息所以保存在task_struct(PCB)中换句话说Z状态一直不退出PCB一直都要维护是的那一个父进程创建了很多子进程就是不回收是不是就会造成内存资源的浪费是的因为数据结构对象本身就要占用内存想想C中定义一个结构体变量对象是要在内存的某个位置进行开辟空间 五、孤儿进程 孤儿进程顾名思义没有父亲的进程就是孤儿进程也就是父进程创建了一个子进程而父进程先退出了就留下了子进程这个时候这个进程就叫做孤儿进程 我们再用上面的代码可以演示一下运行起来后杀死父进程就留下一个子进程 父进程是2200当杀死父进程后子进程的ppid就变成了1就被操作系统接管了 本文介绍了Linux的进程概念补充了一些概念最后讲解了僵尸进程和孤儿进程是什么原因造成的
http://www.pierceye.com/news/170747/

相关文章:

  • 怎样做网站推广啊抖音网站的flash怎么做
  • 网站建设小说网站建设目标是什么意思
  • 如何做一个好的网站中英文网站好处
  • wordpress站点版权设置晋中建设集团网站
  • 怎么夸一个网站做的好看烟台百度网站推广
  • 佛山市网站建设分站多少钱企业门户账号是什么
  • 大中型网站开发价格铜山区建设局局网站周保春
  • 为什么有人做商城优惠券网站卖科技风格设计网站
  • 企业网站的需求分析是做网站编辑还是做平面设计
  • 超酷 flash 网站淮南网红餐厅
  • 湛江网站建设开发株洲关键词seo优化服务商
  • 女的有没有做网站的十大经典随身空间小说推荐
  • 江西做网站哪家好监理证查询网
  • 北京驾校网站建设网络哪里能接活做网站
  • 建设网站公司排名西宁网站建设优化案例
  • 外贸网站推广有用吗网络服务投诉平台
  • 网站制作价上传下载网站模板
  • 注册网站会员 我们的信息淘宝上可以做网站吗
  • 建筑材料价格查询网站做网站从哪方面入门
  • 百度百科网站怎么做360优化大师app下载
  • 那些网站用不着做优化个人网站设计案例
  • wordpress怎么釆集文章杭州seo百度关键词排名推广
  • 网站地址解析做好系部宣传和网站建设
  • 单页网站建设做淘宝优惠网站步骤
  • apache建立多个网站仿卢松松博客网站源码
  • 婚恋网站上海网络推广需要多少钱
  • 网站建设规划方案ppt模板wap浏览器安卓版
  • 网站关键词优化教程成都展厅设计公司
  • 百度网站排名软件怎么做网站竞价
  • 设计素材网站校园二手市场网站建设