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

快速收录网站内页微信公众平台开发者文档

快速收录网站内页,微信公众平台开发者文档,网店美工与视觉设计,wordpress 最新版1、Linux的登录环境Linux是一个多任务多用户的操作系统#xff0c;其设计初衷: 就是要达成多用户同时使用单个计算机大的任务。多用户#xff1a;早期计算机资源紧张#xff0c;为了让更多的人都可以使用。多任务#xff1a;服务于多用户#xff0c;同时提高计算机的吞吐量…1、Linux的登录环境Linux是一个多任务多用户的操作系统其设计初衷: 就是要达成多用户同时使用单个计算机大的任务。多用户早期计算机资源紧张为了让更多的人都可以使用。多任务服务于多用户同时提高计算机的吞吐量。早期登录就是通过哑终端连接登录的。早期登录Linux模型随着以太网的发展Linux的出现在进行多用户连接时候充分使用了以太网。提高了应用层的网络服务这些网络服务替代了之前的轮询监控串口的服务进程。ssh相对于Telnet就是加密了更加安全。2、进程组在Linux下进程除了具有父子关系这样的组织关系以外还具有分组的组织关系任何一个进程都需要隶属于某个进程组。每一个进程组都拥有一个独立的进程组编号可以通过getpgid()方法得到。每一个进程组都拥有且只拥有一个组长进程。可以通过该组长管理其组内的其它进程的统一行为。(例如组长进程若获取一个特殊的信号该信号可以传递给组内所有进程)。进程组ID就是该进程组组长的进程ID。进程组内的成员都是组长的子及子孙。3、会话每一个进程除了要归属一个进程组以外还需要归属于一个会话之中。会话的概念主要是从终端登录到计算机之后得到的。当一个终端登录到计算机之后为了方便将不同的终端隔离开同时又能够充分合理的管理一个终端下产生的所有进程因此而提出了会话的概念。换句话来说会话就是用户登录之后从登录服务进程到shell进程所组成的集合。从逻辑上来讲会话就控制了计算机和某一个终端的一个连续的交互过程。一个会话通常是由多个进程组组成的分为两部分(前台进程组、后台进程组)。会话具有一个会话首进程。操作系统通过会话的首进程来管理整个会话中的所有进程组。(1)、前台进程组是和终端服务进程、bash进程捆绑在一起的和终端直接相关。那么终端的任何操作都会影响到所有的前台进程组。在shell交互环境中执行一个命令就会产生一个新的进程来执行这个命令不仅如此还会产生一个新的进程组该进程组的组长就是被执行命令而形成的新进程。前台进程组的最大问题就在于需要看终端的脸色!终端只需要让进程组的组长停止其内部的所有进程都会停止。(2)、后台进程组断开与终端的关系(并非输入、输出、错误输出关系)进程组关系不在受制于终端而存在这种进程与进程组被称之为后台的。后台进程存在的理由就是需要常驻内存提供一个服务。4、进程组如何创建创建一个新的进程组的方式有2种这2种有区别(1)、通过调用setpgid()能够将调用该方法的当前进程设置为新的进程组的组长。从而创建一个新的进程。(2)、通过调用setsid()方法来创建一个新的会话从而就会出现新的进程组调用setsid()方法的进程就会成为会话的首进程新进行组的组长。5、僵尸进程在Linux操作系统设计中要求进程结束的时候需要告知其父进程该进程的结束父进程也需要知道其子进程结束的状态这是因为父进程有些时候需要根据子进程结束的状态来作一些后续的操作。进程的消亡(1)、进程调用了exit()方法通知操作系统内存当前进程想要结束自己的生命(2)、操作系统此时就会立即回收进程的几乎所有的主要内容然后告知其父进程它的某一个子进程结束(3)、父进程需要明确的答复操作系统内核已收到子进程结束的消息。否则操作系统内核会一直保存该将要结束进程的部分PCB信息。同时将进程的状态置为defunct。这就是僵尸进程。i、僵尸进程是不能够被直接消除掉的。ii、僵尸进程的危害: 占用PCB资源(PID资源)。iii、子进程先于父进程结束父进程没有收尸就是僵尸进程。其产生僵尸进程的代码如下:#include#include#includeint main(void){pid_t pid;pid  fork();if(pid  0){printf(This is child, will finish. pid  %d\n, getpid());}else if(pid  0){while(1){printf(This is father, run allways. pid  %d childPid  %d\n, getpid(), pid);sleep(1);}}else{perror();}return 0;}运行结果如何解决僵尸进程的问题避免僵尸进程的产生。解决僵尸进程的根本就在于父进程需要处理子进程的结束。通过调用wait()函数族来进行解决。wait会等待子进程的结束调用wait的进程会阻塞直到接受到子进程的结束消息时才会被唤醒。父进程等待子进程的结束消息为SIGCHLD(17)信号。解决僵尸进程的代码 :#include#include#includeint main(void){pid_t pid;pid  fork();if(pid  0){int i;for(i  0; i printf(This is child, will finish. pid  %d\n, getpid());sleep(1);}}else if(pid  0){int status;wait(status); //很好的处理了僵尸进程。printf(child has gone, status  %d\n, status);while(1){printf(This is father, run allways. pid  %d childPid  %d\n, getpid(), pid);sleep(1);}}else{perror();}return 0;}此时就会造成父进程一开始什么也干不了只能等待子进程的结束自己才能开始运行。僵尸进程的解决其实是进程回收进程。6、孤儿进程如果某一个进程的父进程先于自己结束那么该进程还有父进程吗?必须有因为在Linux下所有的进程都必须存在于整个进程树之中不允许完全孤立的存在。如果发生父进程先于子进程结束的情况则将子进程过继给编号为1的进程即就是init/systemd进程。然而此时该进程的进程组关系已经打乱。它所在的进程组不在是其父进程或祖先进程。因为此时子进程依然保留之前的进程组信息但是很显然这个进程组与会话信息已经不对了。这种进程就是孤儿进程失去了原有的所有进程组与会话关系的进程。所以也会将init/systemd进程称之为孤儿院进程因为它收养了很多孤儿。因为子进程的父进程结束所以其组的组长的信号就不能够传递给该孩子进程。从而使得该子进程就脱离了原有的进程组关系、脱离了原有的会话关系。虽然它保留了原有的进程组和会话ID但是已经不起任何作用了。产生孤儿进程的代码 :#include#includeint main(void){pid_t pid;pid  fork();if(pid  0){while(1){printf(This is along child, pid  %d, pgid  %d sid  %d\n, getpid(), getpgid(getpid()),getsid(getpid()));sleep(1);}}else if(pid  0){printf(This is father, pid  %d, pgid  %d sid  %d\n, getpid(), getpgid(getpid()), getsid(getpid()));}else{perror();}return 0;}此时孤儿进程产生将用ctrlc终止不下来只能用kill PID进行杀死该孤儿进程了。7、守护进程守护一个服务长期驻留在内存中提供服务不能够受制于终端。通常指的就是操作系统中的服务进程。这些服务进程通常约定其名称最后一个字母为d。守护进程的另外一个名字 : 精灵进程(demon)。如何让一个进程成为守护进程 让一个进程脱离前台进程组关系即可(这样就可以摆脱终端对它的控制)。怎样让进程脱离前台进程组? 1)、创建一个新的会话2)、构成孤儿进程。通常让这两个步骤都进行。守护进程的创建过程:pid_t pid;pid  fork();if(pid  0){setsid();   //产生会话进程while(1){    //子进程一直在运行迟早会构成孤儿进程。...}}else if(pid  0){...exit(0);  //父进程结束}else{perror();}8、僵尸进程和孤儿进程的一个关联init/systemd又叫做上帝进程一手创造了操作系统内部的所有的进程以外还管理了这些僵尸进程帮助将其清除掉了。如果一个进程下产生了僵尸子进程当该进程结束的时候会将僵尸进程过继给init/systemd进程然后init/systemd进程发现过继的新子进程是僵尸进程之后会为其收尸从而消除掉已经存在的僵尸进程。
http://www.huolong8.cn/news/193706/

相关文章:

  • 营销型定制网站广告设计需要学什么
  • 网站宣传的重要性python登录wordpress
  • 穿衣搭配的网站如何做网站建设与管理自考题
  • 张槎建网站公司酷炫网站模板
  • 企业网站制作怎么做政法大学 wordpress
  • 英文响应式网站建设个人主页制作教程
  • 深圳建网站哪个好网站栏目标题
  • 响应式网站企业建一个网站要...
  • 建设云南省癌症中心网站多商网
  • 饰品做商城网站模式推推蛙贴吧优化
  • 徐闻住房与城乡建设局网站南宁中考招生信息网
  • 外贸网站服务器推荐组织建设包括哪些内容
  • 男女之间做那个的网站作品推广
  • 做网站的公司没有技术项目管理软件下载
  • 建设网站具体的步骤建设工程合同约定的质量目标
  • 深圳的网站网络建站的费用
  • 百度网站关键字搜索怎么做c语言做网站后台
  • 安徽省住房和城乡建设厅网站领域查看本分行
  • 企业网站开发公司-北京公司小程序原生开发
  • 大学生网站设计论文3000字陶哲轩 wordpress
  • 富阳做网站的网站里面的导航图标怎么做的
  • 兰溪网站北京电商网站开发价格
  • 招商网站建设运营crm客户管理系统全称
  • 网站排名软件 利搜做网站要源代码
  • 建设沙滩车官方网站抖音代运营服务达不到退费标准
  • 社区论坛自助建站网酒店网站的规划与建设方案
  • 自己创建网站教程wordpress 如何上传
  • 兰州做网站维护的公司wordpress返回件
  • 绍兴做网站的秦皇岛做网站优化
  • 淄博手机网站建设费用wordpress加导航菜单