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

广州市网站建设需要审批网站开发 就业简历模板

广州市网站建设需要审批,网站开发 就业简历模板,wordpress 无法搜索,建网站找哪家目录 一、基本概念 二、描述进程-PCB 1、task_struct-PCB的一种 2、task_ struct内容分类 三、组织进程 四、查看进程 1、ps指令 2、top命令 3、/proc文件系统 4、在/proc文件中查看指定进程 5、进程的工作目录 五、通过系统调用获取进程标示符 1、getpid()/get…目录 一、基本概念 二、描述进程-PCB 1、task_struct-PCB的一种 2、task_ struct内容分类 三、组织进程 四、查看进程 1、ps指令 2、top命令  3、/proc文件系统 4、在/proc文件中查看指定进程 5、进程的工作目录  五、通过系统调用获取进程标示符 1、getpid()/getppid()  getpid() getppid() 2、kill命令 五、通过系统调用创建进程 1、bash 2、fork() 父子进程返回结果不同  fork之后有两个不同的执行流 fork创建进程后为什么会有两个返回值 3、总结 一、基本概念 程序的本质是文件以二进制形式存储在磁盘中。当程序文件加载到内存时就形成了一个进程。因此操作系统帮助我们将程序转换为进程以执行特定任务。简单来说每次打开一个程序或应用时都会生成一个对应的进程。 教材概念程序的一个执行实例正在执行的程序等内核观点担当分配系统资源CPU时间内存的实体。  进程程序的代码和数据(磁盘)操作系统维护的进程控制块PCB结构体 进程是计算机中正在运行的程序的实例它包括了程序的代码和数据存储在磁盘上以及操作系统维护的进程控制块PCB结构体。 代码指的是程序的指令集合定义了程序的逻辑和执行流程。这些指令存储在磁盘上的可执行文件中。当进程被加载到内存中运行时这些指令被复制到内存中的代码段中并由处理器执行。代码段通常包括程序的可执行指令、函数、子程序等。数据指的是程序在运行过程中使用的变量、常量、对象等存储数据。数据存储在进程的数据段中也就是进程的内存空间中的一部分。数据段包括全局变量、静态变量、堆、栈等。这些代码和数据构成了进程的执行环境使得程序能够在计算机上正确运行。除了代码和数据外进程还包括了操作系统维护的进程控制块PCB。PCB是用于存储和管理进程的各种信息的数据结构如进程的状态、优先级、寄存器值、内存分配情况等。PCB存储了进程的标识、状态、优先级、程序计数器PC值、寄存器内容、内存分配情况等重要信息是操作系统用于管理和控制进程的关键数据结构。 二、描述进程-PCB 在Windows任务管理器中我们可以看到许多正在运行和后台运行的进程。操作系统需要对这些进程进行管理这是通过一种称为进程控制块PCB的数据结构来实现的。PCB包含了进程的属性信息类似于文件的内容和属性。 进程信息被放在一个叫做进程控制块的数据结构中可以理解为进程属性的集合。课本上称之为PCBprocess control blockLinux操作系统下的PCB是: task_struct 1、task_struct-PCB的一种 在Linux中描述进程的结构体叫做task_struct。 task_struct是Linux内核的一种数据结构它会被装载到RAM(内存)里并且包含着进程的信息 2、task_ struct内容分类 标示符: 描述本进程的唯一标示符用来区别其他进程。状态: 任务状态退出代码退出信号等。优先级: 相对于其他进程的优先级。优先级先后顺序权限能与不能程序计数器: 程序中即将被执行的下一条指令的地址。内存指针: 包括程序代码和进程相关数据的指针还有和其他进程共享的内存块的指针。上下文数据: 进程执行时处理器的寄存器中的数据[休学例子要加图CPU寄存器]。IO状态信息: 包括显示的I/O请求,分配给进程的IO设备和被进程使用的文件列表。记账信息: 可能包括处理器时间总和使用的时钟数总和时间限制记账号等。其他信息 三、组织进程 可以在内核源代码里找到它。所有运行在系统里的进程都以task_struct双链表的形式存在内核里。 有些操作系统会把任务队列称为任务数组。但是Linux实现时使用的是队列而不是静态数组所以称为任务队列. 四、查看进程 新创建一个myproc.c文件为其编写一个Makefile文件对其进行编译然后运行myproc这个死循环的可执行程序方便持续查看进程。  1、ps指令 ps 指令是 Linux 中用于显示当前正在运行的进程的命令。它提供了有关进程的各种信息例如进程的 PID进程标识符、CPU 和内存使用情况等。 默认情况下如果你只输入 ps 命令而不加任何选项它会显示与当前终端会话相关的进程信息。这可能包括 Shell 以及你通过该 Shell 启动的其他进程。 ps axj | grep myproc 这个命令是将两个命令结合起来使用首先执行 ps axj 命令它会显示所有进程的详细信息。然后使用管道 | 将输出传递给 grep myproc 命令grep 是用于搜索指定模式的文本的工具。因此ps axj | grep myproc 命令的作用是从所有进程的详细信息中过滤出包含字符串 myproc 的行。这样就能找到与 myproc 相关的进程信息。a 选项表示显示所有用户的进程而不仅仅是当前用户的进程。x 选项表示显示没有控制终端的进程即显示所有进程而不仅仅是与当前终端关联的进程。j 选项表示以作业控制的格式显示进程信息这种格式通常包括更多关于进程的详细信息。 ps axj | head -1 ps axj | grep myproc 首先执行 ps axj 命令它会显示所有进程的详细信息。然后使用管道 | 将输出传递给 head -1 命令head -1 只会显示输出的第一行即列标题行这样可以让我们看到列的含义。接着 运算符表示如果前一个命令成功执行即返回状态码为 0则执行下一个命令。因此如果第一个命令成功执行就会继续执行第二个命令。第二个命令是 ps axj | grep myproc它会从所有进程的详细信息中过滤出包含字符串 myproc 的行。这样就能找到与 myproc 相关的进程信息。 2、top命令  top 命令是一个交互式的实用程序用于动态监视系统的进程活动和资源利用情况。它可以显示各个进程的 CPU 占用、内存占用、以及其他系统资源的使用情况。top 命令提供了一个实时更新的进程列表用户可以通过键盘命令与其交互例如排序进程、终止进程等。 下面是一些常用的 top 命令的键盘快捷键 q退出 top 命令。k终止进程。输入该命令后会提示输入需要终止的进程的 PID。Space更新显示。1切换到显示每个 CPU 核心的独立信息。M按内存使用量排序。P按 CPU 使用量排序。T按时间排序。 top 命令的输出通常包括 系统概述系统的运行时间、平均负载等。进程信息各个进程的 PID、CPU 使用率、内存使用量等。系统资源CPU 使用率、内存使用情况、交换分区使用情况等。 3、/proc文件系统 进程的信息可以通过 /proc 系统文件夹查看/proc 是一个特殊的虚拟文件系统用于在Linux系统中提供进程和系统信息。虽然它在文件系统中显示为一个目录但实际上它是一个由内核动态生成的虚拟文件系统用于向用户空间提供系统和进程的信息。通过访问 /proc 目录可以查看和管理运行中的进程以及获取有关系统状态和配置的信息。 ls /proc 这个目录是动态的多一个进程就多一个目录少一个进程就少一个目录。 ls /proc -l    4、在/proc文件中查看指定进程 查找 myproc 进程  ps axj | grep myproc 使用 ps axj 命令列出所有进程的详细信息然后用 grep 过滤出包含 myproc 的行。输出显示 myproc 进程的 PID 是 24857同时也显示了运行 grep 命令本身的进程信息。 在 /proc 目录中查找进程  ls /proc -l | grep 24857 这个命令列出了 /proc 目录的内容并使用 grep 查找与 myproc 进程 PID24857相关的目录。/proc 文件系统包含了系统信息和正在运行的每个进程的详细信息。每个进程都有一个以其 PID 命名的目录。输出显示了 PID 为 24857 的进程的目录。 列出 /proc/24857 目录的内容  ls /proc/24857 通过列出 /proc/24857 目录的内容可以看到与进程相关的许多文件和目录。这些文件和目录提供了关于进程的各种信息包括 cmdline进程启动命令。cwd进程的当前工作目录。environ进程的环境变量。exe到启动进程的可执行文件的符号链接。fd包含指向进程打开的文件描述符的符号链接。status进程的状态信息。mem进程的内存映射。等等其他许多提供关于进程运行状态、资源使用情况等信息的文件和目录。 5、进程的工作目录  其中cwd表示当前进程的工作目录 以前学习的FILE *fp fopen(log.txt,w)第一个参数没有带路径默认打开当前路径。为什么呢 这是因为我们的程序经过编译形成可执行程序打开文件运行后形成一个进程每个进程都会有一个属性来保存自己的工作路径。 五、通过系统调用获取进程标示符 1、getpid()/getppid()  使用man手册查看使用方法  getpid() 功能getpid() 函数用于获取当前进程的进程 IDPID。返回值它返回一个 pid_t 类型的值即当前进程的 PID。在 Linux 中每个运行的进程都有一个唯一的进程标识符用于区分不同的进程。使用场景该函数在需要根据进程 ID 进行进程管理或信息记录时非常有用。例如日志记录时可能需要记录发起日志条目的进程 ID。 getppid() 功能getppid() 函数用于获取当前进程的父进程的进程 IDPPID。返回值同样返回一个 pid_t 类型的值即当前进程的父进程的 PID。当一个进程被创建通常是通过 fork() 调用时创建它的进程成为其父进程。使用场景这在需要了解或控制进程的层级结构时非常有用比如在创建守护进程时可能会根据父进程的 ID 进行特定的逻辑判断。 下面我们创建一个myproc.c文件输出的pid与我们查询的进程id进行比较  #include stdio.h #include sys/types.h #include unistd.h int main() {while(1){pid_t idgetpid(); //获取的是自己的进程printf(hello worldpid: d\n,,id);sleep(1);}return 0; }右边复制一个SSH渠道边运行边查看如下图 我们可以发现右边通过getpid成功输出进程myproc的pid。  我们再输出一下父进程idppid  #include stdio.h #include sys/types.h #include unistd.h int main() {while(1){pid_t idgetpid();printf(hello world, pid: %d, ppid: %d\n,id,getppid());sleep(1);}return 0; }输出结果 2、kill命令 kill 命令用于向进程发送信号以控制进程的行为或终止进程。它的基本语法是  kill [options] PID 其中 PID 是要终止的进程的进程标识符。 常用的 kill 命令选项包括 -l列出可用的信号名称。-9发送强制终止信号也称为 SIGKILL立即终止目标进程。-15发送终止信号也称为 SIGTERM默认行为是终止目标进程但它可以被进程捕获、忽略或处理。-SIGsignal使用信号名称来指定要发送的信号例如 -SIGTERM。 例如要终止PID为22053的进程操作如下 五、通过系统调用创建进程 1、bash 每次查询当前运行的命令时我们知道子进程是我们创建并运行的那父进程是谁 父进程是bash。 系统中每个命令行上运行的命令都是由 Bash shell 的一个子进程执行。此外Bash shell 本身也是系统中许多进程的父进程。 Bash shell 是命令行界面的核心负责解释和执行用户输入的命令。 复习Shell概念  Shell外壳是计算机操作系统中的一个用户界面用于与操作系统内核进行交互。Shell允许用户通过命令行或图形用户界面GUI来执行操作系统提供的功能和应用程序。Shell接受用户输入的命令并将其解释并传递给操作系统内核执行。在类Unix操作系统如Linux、macOS等中常见的Shell包括BashBourne Again Shell、ZshZ Shell、Fish等。这些Shell提供了丰富的命令和功能使用户能够管理文件、运行程序、配置系统等操作。 在大多数Linux系统中常用的命令行解释器shell是BashBourne Again Shell。Bash是一个流行的Unix shell也是许多Linux发行版的默认shell。它提供了丰富的功能和命令使用户能够与操作系统进行交互、执行命令、编写脚本等。 如果我们kill -9 bash呢 kill -9 加上bash的id 命令行会会失效。 立即终止会话 当前终端或会话中的Bash进程会被立即终止导致您失去对该终端会话的访问。 子进程可能被终止 如果该Bash进程启动了任何子进程那么这些进程可能也会因为父进程的终止而受到影响除非它们已经被设置为守护进程或与终端会话分离。 未保存的数据丢失 如果您在该Bash会话中运行的程序或编辑器中有未保存的工作强制终止Bash进程将导致这些数据丢失。 不影响其他Bash会话 如果您在同一系统上打开了多个终端会话这个操作只会影响您向其发送kill -9命令的那个Bash进程。其他Bash会话及其子进程将不受影响。 可能需要重新登录 终止当前会话的Bash进程后您可能需要重新打开一个新的终端会话或重新登录您的用户账户来恢复正常操作。 注意每次登入的bash都不同复制一个SSH通道杀掉bash进程不会影响另一个窗口运行命令。 2、fork() 在Linux系统中fork() 是一个系统调用用于创建一个新的进程。调用 fork() 后操作系统会复制当前进程的副本包括代码段、数据段、堆栈等然后在新的进程中运行。原始进程被称为父进程新创建的进程被称为子进程。 在 fork() 调用后父进程和子进程会继续执行后续的代码但是它们会有不同的进程IDPID和返回值。在父进程中fork() 返回子进程的PID而在子进程中fork() 返回0。通过 fork() 创建子进程后父子进程之间会共享一些资源如文件描述符、内存映射等但各自有独立的地址空间。这样可以实现并发执行父子进程可以在独立的执行环境中运行不同的任务。  按照顺序先运行没有fork的代码再运行有fork的版本。  #include stdio.h #include sys/types.h #include unistd.hint main() {printf(I am parent process.\n);printf(you can see me.\n);return 0; } #include stdio.h #include sys/types.h #include unistd.hint main() {printf(I am parent process.\n);fork();printf(you can see me.\n);sleep(1);return 0; } 输出结果如下我们可以发现创建子进程后有一句被输出了两次。 这是因为创建进程后变为两个程序一个是父进程另一个是子进程他们分别运行fork()后面的程序。 父子进程返回结果不同  我们再观察下面代码的输出结果  #include stdio.h #include sys/types.h #include unistd.hint main() {printf(I am parent process.\n);pid_t retfork();printf(ret: %d, pid: %d, ppid: %d\n,ret,getpid(),getppid());sleep(1);return 0; } fork为什么给父进程返回子进程pid给子进程返回0 当fork()在父进程中被调用时它会返回子进程的PID进程ID这样父进程就可以知道新创建的子进程的PID从而可以对子进程进行管理或跟踪。当fork()在子进程中被调用时它会返回0这样子进程可以通过返回值来确定自己是子进程而不是父进程。子进程可以根据返回值执行自己的逻辑而不是继续执行父进程的代码。 fork之后有两个不同的执行流 为什么下面else if和else可以同时输出呢因为fork之后有两个不同的执行流 。 #include stdio.h #include unistd.hint main() {pid_t idfork();if(id0){//创建失败perror(fork);return 1;}else if(id0){//child processwhile(1){printf(I am child, pid:%d, ppid:%d\n,getpid(),getppid());sleep(1);}}else{//parent processwhile(1){printf(I am father, pid:%d, ppid:%d\n,getpid(),getppid());sleep(1);} }printf(you can see me\n);sleep(1);//进程退出顺序不一样return 0; }我们通过下面命令是用来监视名为myproc的进程。 while :; do ps axj | head -1 ps axj | grep myproc | grep -v grep; sleep 1; done 这是一个无限循环while :; do ... done在循环内部它首先使用 ps axj | head -1 命令来显示进程列表的标题行列名然后通过 ps axj | grep myproc | grep -v grep 命令来显示包含 myproc 的进程同时使用 grep -v grep 来排除 grep 进程本身。最后sleep 1 用于每秒暂停一次 我们可以为每次输出结果之间加上一条分割线。###分隔符过长仅保留部分 while :; do ps axj | head -1 ps axj | grep myproc | grep -v grep; sleep 1; echo ###; donefork创建进程后为什么会有两个返回值 Linux中的fork()系统调用返回两次值这是因为在Unix系统中fork()的设计是基于父子进程的概念。调用fork()时操作系统会复制当前进程创建一个新的子进程。这个子进程是父进程的副本但它们是两个独立的进程各自有自己的地址空间。fork()创建进程后返回两次值的原因是在fork()内部父进程和子进程各自会执行自己的return语句这导致了两次返回。这并不意味着操作系统保存了两次状态而是因为父进程和子进程在不同的执行上下文中各自返回。 3、总结 在操作系统中当需要运行一个进程时实际上是从任务结构task_struct形成的队列中选择一个任务结构来执行该进程的代码。进程调度实质上就是在任务结构队列中选择一个进程的过程。在创建父子进程后哪个进程先运行并不确定。这是由操作系统的调度器决定的。调度器会根据一定的策略如优先级、时间片轮转等来决定下一个要运行的进程。因此父子进程的执行顺序不确定取决于操作系统的调度算法。
文章转载自:
http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn
http://www.morning.jzyfy.cn.gov.cn.jzyfy.cn
http://www.morning.pflry.cn.gov.cn.pflry.cn
http://www.morning.zmqb.cn.gov.cn.zmqb.cn
http://www.morning.kmjbs.cn.gov.cn.kmjbs.cn
http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn
http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn
http://www.morning.gbpanel.com.gov.cn.gbpanel.com
http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn
http://www.morning.jlschmy.com.gov.cn.jlschmy.com
http://www.morning.wnywk.cn.gov.cn.wnywk.cn
http://www.morning.rtspr.cn.gov.cn.rtspr.cn
http://www.morning.rshijie.com.gov.cn.rshijie.com
http://www.morning.ysfj.cn.gov.cn.ysfj.cn
http://www.morning.kdnrc.cn.gov.cn.kdnrc.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.gcszn.cn.gov.cn.gcszn.cn
http://www.morning.hgcz.cn.gov.cn.hgcz.cn
http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn
http://www.morning.tymwx.cn.gov.cn.tymwx.cn
http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn
http://www.morning.mkfhx.cn.gov.cn.mkfhx.cn
http://www.morning.ljzss.cn.gov.cn.ljzss.cn
http://www.morning.dgknl.cn.gov.cn.dgknl.cn
http://www.morning.tgtrk.cn.gov.cn.tgtrk.cn
http://www.morning.krklj.cn.gov.cn.krklj.cn
http://www.morning.rjljb.cn.gov.cn.rjljb.cn
http://www.morning.dmjhp.cn.gov.cn.dmjhp.cn
http://www.morning.pshpx.cn.gov.cn.pshpx.cn
http://www.morning.qcfgd.cn.gov.cn.qcfgd.cn
http://www.morning.ktntj.cn.gov.cn.ktntj.cn
http://www.morning.zljqb.cn.gov.cn.zljqb.cn
http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn
http://www.morning.ssqwr.cn.gov.cn.ssqwr.cn
http://www.morning.ysybx.cn.gov.cn.ysybx.cn
http://www.morning.lzzqz.cn.gov.cn.lzzqz.cn
http://www.morning.hkshy.cn.gov.cn.hkshy.cn
http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn
http://www.morning.sqmlw.cn.gov.cn.sqmlw.cn
http://www.morning.ghlyy.cn.gov.cn.ghlyy.cn
http://www.morning.skmzm.cn.gov.cn.skmzm.cn
http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn
http://www.morning.trkl.cn.gov.cn.trkl.cn
http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn
http://www.morning.mpngp.cn.gov.cn.mpngp.cn
http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn
http://www.morning.hkchp.cn.gov.cn.hkchp.cn
http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn
http://www.morning.zydr.cn.gov.cn.zydr.cn
http://www.morning.twfdm.cn.gov.cn.twfdm.cn
http://www.morning.bdwqy.cn.gov.cn.bdwqy.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn
http://www.morning.pgzgy.cn.gov.cn.pgzgy.cn
http://www.morning.piekr.com.gov.cn.piekr.com
http://www.morning.qbzdj.cn.gov.cn.qbzdj.cn
http://www.morning.xflwq.cn.gov.cn.xflwq.cn
http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn
http://www.morning.nxwk.cn.gov.cn.nxwk.cn
http://www.morning.guanszz.com.gov.cn.guanszz.com
http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn
http://www.morning.ypklb.cn.gov.cn.ypklb.cn
http://www.morning.linzhigongmao.cn.gov.cn.linzhigongmao.cn
http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn
http://www.morning.3jiax.cn.gov.cn.3jiax.cn
http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn
http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn
http://www.morning.mytmx.cn.gov.cn.mytmx.cn
http://www.morning.zyrp.cn.gov.cn.zyrp.cn
http://www.morning.kskpx.cn.gov.cn.kskpx.cn
http://www.morning.hgscb.cn.gov.cn.hgscb.cn
http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn
http://www.morning.htqrh.cn.gov.cn.htqrh.cn
http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn
http://www.morning.nnmnz.cn.gov.cn.nnmnz.cn
http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn
http://www.morning.haibuli.com.gov.cn.haibuli.com
http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn
http://www.morning.yrjxr.cn.gov.cn.yrjxr.cn
http://www.tj-hxxt.cn/news/274316.html

相关文章:

  • 百度智能云网站建设底部版权wordpress
  • 乐清网站建设公司手机上免费做ppt的软件
  • 中国城乡建设部证件查询网站网站加黑链
  • 网络建站东北保定企业自助建站
  • 六安电商网站建设哪家好在线免费货源网站入口
  • 网站建设教程网哪个好qq选号网站怎么做的
  • 女人做春梦网站怎么把网站放到阿里云
  • 莒县住房和城乡规划建设局网站导购网站怎么建
  • 二维码导航网站源码闵行网站建设哪家好
  • 达州科创网站建设公司简易签名设计一笔签
  • 博客网站建设设计报告前端只是做网站吗
  • 汕头企业网站时事新闻
  • 手机便宜电商网站建设微网站 html
  • 查网站域名备案查询系统山东建设发展研究院网站
  • 长沙网站优化技巧建设部网站城市规划资质标准
  • 成都著名网站docker可以做网站吗
  • 南京网站设计外包优秀网站设计案例中国
  • 网站建设首页包括什么印度域名注册网站
  • 管理网站建设小程序后端怎么开发
  • 网站建设需要c语言吗排名优化的公司
  • 签订网站建设合同需要注意什么广西住房和城乡建设网站
  • 如何给网站绑定域名wap网站建设免费
  • wordpress默认的h1标签放在哪里西安seo
  • 济南网站建设咨询小七python做网站框架
  • 淘宝u站怎么做网站的专业网页设计服务
  • 电商网站建设方案模板扫一扫内饰图片识别车型
  • 代备案网站空间网站建设与规划心得
  • 福建金融公司网站建设wordpress 正在跳转中 请稍等
  • 下载爱南宁官方网站全网营销型网站新闻
  • 石家庄学做网站建设培训班ui中国设计网站页面