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

石油网页设计与网站建设网站开发一般多钱

石油网页设计与网站建设,网站开发一般多钱,wordpress进入有点卡,厦门网站建设方案策划目录 一、概念的理解 二、指令操作 一、概念的理解 在许多地方对进程的定义都是这样的一句话#xff1a;加载到内存中的程序、正在运行的程序、进程可以排队 而要真正理解进程是什么#xff0c;这一句话的解释远远不够。 在定义进程之前#xff0c;先来理解程序#xff0…目录 一、概念的理解 二、指令操作 一、概念的理解 在许多地方对进程的定义都是这样的一句话加载到内存中的程序、正在运行的程序、进程可以排队······ 而要真正理解进程是什么这一句话的解释远远不够。 在定义进程之前先来理解程序我们存储在计算机磁盘当前现在的设备多是固态硬盘一个意思的可运行程序是一个二进制文件是要交给计算机的CPU来执行的那么磁盘属于外设根据冯诺依曼的计算机体系结构外设不能直接和CPU传输数据而是中间要经过内存。 那么这个可运行程序就会加载到内存。 那么加载到内存以后这就是进程了吗 事实上我们可以同时启动多个程序那么就意味着有多个程序被加载到内存。 那么操作系统必定要对这些加载到内存中的程序做管理。 而提到管理必然离不开“先描述、再组织”即先面向对象再数据结构。 于是在一个程序加载到内存后操作系统内核也会定义一个结构体变量跟踪管理这个程序。这个结构体变量称为进程控制块PCBprocess control block它内部包含这个进程的所有信息。 Linux中描述PCB的结构体是task_struct。 因此进程真正的理解为 先描述PCB是结构体利用面向对象的思想进程 内核PCB 可执行程序。 再组织有了结构体管理结构体利用数据结构进程 内核数据结构一般是链表 可执行程序。 Linux中task_struct结构体变量的内容大致分类 标示符: 描述本进程的唯一标示符用来区别其他进程。 状态: 任务状态退出代码退出信号等。 优先级: 相对于其他进程的优先级。 程序计数器: 程序中即将被执行的下一条指令的地址。 内存指针: 包括程序代码和进程相关数据的指针还有和其他进程共享的内存块的指针。 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子要加图CPU寄存器]。 IO状态信息: 包括显示的I/O请求,分配给进程的IO设备和被进程使用的文件列表。 记账信息: 可能包括处理器时间总和使用的时钟数总和时间限制记账号等。 那么我们作为用户如何查看进程信息。这里有一个逻辑关系PCB是内核结构体变量属于操作系统内部变量因此只能使用系统调用接口system call做相关操作。 二、指令操作 所有进程的目录 /proc/如果你想查看PID为1的进程信息你可以查看下面这个目录 /proc/1 打印进程的指令 ps axj ps是process的缩写功能是显示当前系统的进程状态。axj分别是-a、-x、-j三个参数。 新建一个目录比如24915在该目录下新建源文件同时配置Makefile文件。 [eutoVM-4-13-centos 24915]$ touch myprocess.c [eutoVM-4-13-centos 24915]$ ls myprocess.c [eutoVM-4-13-centos 24915]$ ls Makefile [eutoVM-4-13-centos 24915]$ ls Makefile myprocess.c配置Makefile文件。 [eutoVM-4-13-centos 24915]$ cat Makefile myprocess:myprocess.cgcc -o $ $^ -stdc99 .PHONY:clean clean:rm -f myprocess编辑源文件。 [eutoVM-4-13-centos 24915]$ cat myprocess.c #include stdio.h #include unistd.hint main() {while(1){printf(i am a process!\n);sleep(1);}return 0; }编译完成后执行该程序。 [eutoVM-4-13-centos 24915]$ ./myprocess i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! i am a process! ······ 同时再观察进程信息。 [eutoVM-4-13-centos 24915]$ ps axj | head -1 ps axj | grep myprocessPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 28701 15839 15839 28701 pts/1 28701 T 1001 0:00 ./myprocess 17253 20133 20132 17253 pts/2 20132 S 1001 0:00 grep --colorauto myprocess //打印的第二行是因为grep本身也是可执行程序即进程在执行grep的时候 //这个可执行程序的参数带有myprocess的字眼 //可以使用grep 的 -v选项过滤掉这一行 [eutoVM-4-13-centos 24915]$ ps axj | head -1 ps axj | grep myprocess | grep -v grepPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 28701 15839 15839 28701 pts/1 28701 T 1001 0:00 ./myprocess几乎所有的指令也是可执行程序当执行指令操作后也会成为进程。 下面为了方便观察进程让打印进程的指令做循环操作不断检测进程状态。 //while true //do // a // b // ··· //done [eutoVM-4-13-centos 24915]$ while :; do ps ajx | head -1 ps ajx | grep myprocess | grep -v grep; sleep 1; donePPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND ················ 执行可执行程序myprocess后观察到进程从无到有的过程 [eutoVM-4-13-centos 24915]$ while :; do ps ajx | head -1 ps ajx | grep myprocess | grep -v grep; sleep 1; donePPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 9385 9385 2569 pts/1 9385 S 1001 0:00 ./myprocessPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 9385 9385 2569 pts/1 9385 S 1001 0:00 ./myprocessPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 9385 9385 2569 pts/1 9385 S 1001 0:00 ./myprocessPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 9385 9385 2569 pts/1 9385 S 1001 0:00 ./myprocess我们已经知道PCB属于内核数据想要访问PCB需要系统调用接口system call。获取PID的命令名为getpid。 //执行man getpid查看相关信息GETPID(2) Linux Programmers Manual GETPID(2)NAMEgetpid, getppid - get process identificationSYNOPSIS#include sys/types.h#include unistd.hpid_t getpid(void);pid_t getppid(void); ·········· 结果显示getpid是2号手册的内容。 //执行man man查看手册的描述1 Executable programs or shell commands//2号手册描述系统调用接口的使用2 System calls (functions provided by the kernel)3 Library calls (functions within program libraries)4 Special files (usually found in /dev)5 File formats and conventions eg /etc/passwd6 Games7 Miscellaneous (including macro packages and conventions), e.g.man(7), groff(7)8 System administration commands (usually only for root)9 Kernel routines [Non standard]修改源文件内容。 [eutoVM-4-13-centos 24915]$ cat myprocess.c #include stdio.h #include unistd.h #include sys/types.h int main() {pid_t id getpid();while(1){printf(i am a process! id: %d \n,id);sleep(1);}return 0; }和原来一样的操作打印进程信息观察进程从无到有的过程 [eutoVM-4-13-centos 24915]$ while :; do ps ajx | head -1 ps ajx | grep myprocess | grep -v grep; sleep 1; donePPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMANDPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 18465 18465 2569 pts/1 18465 S 1001 0:00 ./myprocessPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2569 18465 18465 2569 pts/1 18465 S 1001 0:00 ./myprocess 程序运行结果显示 i am a process! id: 18465 i am a process! id: 18465 i am a process! id: 18465 i am a process! id: 18465 ······· 一般在Linux中普通进程都有父进程且唯一而一个进程可能是多个子进程的父进程。 //查看getppid的使用方法 man getppid 同上一个操作一样修改源文件观察进程信息。 [eutoVM-4-13-centos 24915]$ ./myprocess i am a process! id: 23894,fid: 2569 i am a process! id: 23894,fid: 2569 ^C [eutoVM-4-13-centos 24915]$ ./myprocess i am a process! id: 23982,fid: 2569 i am a process! id: 23982,fid: 2569 ^C [eutoVM-4-13-centos 24915]$ ./myprocess i am a process! id: 23992,fid: 2569 i am a process! id: 23992,fid: 2569 ^C不难发现普通进程每次启动后PID都是随机变化的但是父进程是唯一不变的。但是进程2569到底是什么程序呢 [eutoVM-4-13-centos 24915]$ ps ajx | head -1 ps axj | grep 2569PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2562 2569 2569 2569 pts/1 2569 Ss 1001 0:00 -bash3778 26700 26699 3778 pts/2 26699 S 1001 0:00 grep --colorauto 2569关于bashbash是Shell的其中一种。 Shell 编程跟 JavaScript、php 编程一样只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。         Linux 的 Shell 种类众多常见的有 Bourne Shell/usr/bin/sh或/bin/shBourne Again Shell/bin/bashC Shell/usr/bin/cshK Shell/usr/bin/kshShell for Root/sbin/sh         Bash也就是 Bourne Again Shell由于易用和免费Bash 在日常工作中被广泛使用。同时Bash 也是大多数Linux 系统默认的 Shell。 Bash即命令解释器在命令行启动的程序都是Bash的子进程。
http://www.zqtcl.cn/news/651003/

相关文章:

  • 太原cms建站模板建设部网站监理注销查询
  • 流量对网站排名的影响因素网站内容的作用
  • 彩钢做网站能赚钱吗合肥市住房和城乡建设厅
  • 顺德网站建设itshunde罗村建网站
  • 网站开发语言开发十大免费货源网址
  • 网站建设要那些收费项如何做自己的淘客网站
  • 郴州文明网网站网站设计策划书3000字
  • 免费学习资源网站网站维护得多久
  • 电子商务网站建设考试重点长沙网站推广平台
  • 商业性质网站建设步骤佛山企业网站优化
  • 做网站投入网站设计与开发未来发展方向
  • 网站seo优化外包顾问网站ip解析
  • 贵阳建网站公司兼职网站推广如何做
  • 建设企业网站公司价格page做网站
  • 直播网站建设模板跨境电商选品
  • 购物网站有哪些shop++是什么
  • 自动化优化系统网站建设网站建设类文章
  • 网站建设以及推广提案书支付通道网站怎么做
  • 上海兼职做网站凤凰军事新闻
  • 青田建设局网站ui培训哪好
  • 佛山网站seo哪家好全返网站建设
  • 快速建站哪个平台好常见网页设计
  • 织梦网站地图模板网站服务费
  • 织梦建设两个网站 视频互联网公司排名1000
  • 广州企业网站设计西昌手机网
  • 一个工厂做网站有用吗wordpress重写登录页面
  • 网站服务器如何搭建网站分页设计
  • 可以直接进入网站的正能量连接温州注册网络公司
  • 清丰网站建设价格福州绿光网站建设工作室
  • 武城网站建设价格东莞容桂网站制作