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

工业做网站个人怎么接外贸订单

工业做网站,个人怎么接外贸订单,织梦企业网站源码,上海网站建设怎么下面是有关进程的相关介绍,希望对你有所帮助! 小海编程心语录-CSDN博客 目录 1. 进程的概念 1.1 进程与程序 1.2 进程号 2. 进程的状态 2.1 fork创建子进程 2.2 父子进程间的文件共享 3. 进程的诞生与终止 3.1 进程的诞生 3.2 进程的终止 1. 进…

下面是有关进程的相关介绍,希望对你有所帮助!

小海编程心语录-CSDN博客

92e7c358df2540d3af4646b81cf95313.gif 

目录

1. 进程的概念

1.1 进程与程序

1.2 进程号

2. 进程的状态

2.1 fork创建子进程

2.2 父子进程间的文件共享

3. 进程的诞生与终止

3.1 进程的诞生

3.2 进程的终止


 

1. 进程的概念

1.1 进程与程序

进程是一个可执行程序的实例,进程是一个动态过程,它是程序的一次运行过程,被执行之后的程序叫做进程,每个运行的进程的都对应一个属于自己的虚拟地址空间。当应用程序被加载到内存中运行之后它就称为了一个进程,当程序运行结束后也就意味着进程终止,这就是进程的一个生命周期。

程序是一个可执行文件,文件是一个静态的概念,存放磁盘中,如果可执行文件没有被运行,那它将不会产生什么作用,不占用磁盘空间,需要消耗系统的内存,CPU资源。

程序:编译后产生的,格式为ELF的,存储于硬盘的文件

进程:程序中的代码和数据,被加载到内存中运行的过程

程序是静态的概念,进程是动态的概念

PCB:存放一个具体进程的全部信息(包括进程编号、状态、优先级等),因为系统有多个进程,所以就存在多个PCB,每个PCB之间通过指针变量关联

 

78a79c5b1bd940a9bcc7b5156f35dce9.png

1.2 进程号

Linux 系统下的每一个进程都有一个进程号(process ID,简称 PID),用于唯一标识系统中的某一个进程,在应用程序中,可通过系统调用 getpid()来获取本进程的进程号,除了 getpid()用于获取本进程的进程号之外,还可以使用 getppid()系统调用获取父进程的进程号

//函数原型
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
//可以这么写
pid_t pid;
pid = getpid();

2. 进程的状态

Linux 系统下进程通常存在 6 种不同的状态,分为:就绪态、运行态、僵尸态、 可中断睡眠状态(浅度 睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态

就绪态:指该进程满足被CPU调度的所有条件但此时并没有被调度执行,只要得到CPU就能够直接运行;意味着该进程已经准备好被CPU执行。
运行态:指该进程当前正在被CPU调度运行,处于就绪态的进程得到CPU调度就会进入运行态
僵尸态:僵尸态进程其实指的就是僵尸进程,指该进程已经结束、但其父进程还未给它“收尸”。
可中断睡眠状态:可中断睡眠也称为浅度睡眠,表示睡的不够“死”,还可以被唤醒,一般来说可以通过信号来唤醒

不可中断睡眠状态:不可中断睡眠称为深度睡眠,深度睡眠无法被信号唤醒,只能等待相应的条件成立才能结束睡眠状态。把浅度睡眠和深度睡眠统称为等待态(或者叫阻塞态),表示进程处于一种等待状态,等待某种条件成立之后便会进入到就绪态

暂停态:暂停并不是进程的终止,表示进程暂停运行,一般可通过信号将进程暂停,譬如SIGSTOP信号;处于暂停态的进程是可以恢复进入到就绪态的,譬如收到SIGCONT信号

2.1 fork创建子进程

除了系统的初始化进程之外,其他的所有进程都是通过 fork() 复刻而来的。fork()调用成功后,将会在父进程中返回子进程的 PID,而在子进程中返回值是 0,之后子进程和父进程会继续执行 fork()调用之后的指令;如果调用失败,父进程返回值 -1,不创建子进程。

调用 fork()函数的进程称为父进程,由 fork()函数创建出来的进程被称为子进程。

fork函数执行完毕后的三种情况:

  1. 在父进程中,fork返回新创建子进程的进程PID
  2. 在子进程中,fork返回0
  3. 如果出现错误,fork返回一个负值

2.2 父子进程间的文件共享

//示例代码
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{pid_t pid;int fd;int i;fd = open("./test.txt", O_RDWR | O_TRUNC);  //打开文件if (0 > fd){perror("open error");exit(-1);}//复刻创建子进程pid = fork();    switch (pid)    //三种情况{case -1:        // 失败perror("fork error");close(fd);    exit(-1);     case 0:// 子进程 for (i = 0; i < 4; i++) // 循环写入 4 次write(fd, "1122", 4);close(fd);    //关闭文件_exit(0);    //退出子进程default:// 父进程 for (i = 0; i < 4; i++) // 循环写入 4 次write(fd, "AABB", 4);close(fd);    //关闭文件exit(0);      //退出父进程}
}
//大家可以自己试着运行代码,看一下输出结果是什么!

父进程 open 打开文件之后,才调用 fork()函数创建了子进程,所以子进程了继承了父进程打开的文件描述符 fd,两个文件描述符都指向了一个相同的文件,意味着它们的文件偏移量是同一个、绑定在了一起,相互影响,子进程改变了文件的位置偏移量就会作用到父进程,同理,父进程改变了文件的位置偏移量就会作用到子进程。

3. 进程的诞生与终止

3.1 进程的诞生

一个进程可以通过 fork()系统调用创建一个子进程,一个新的进程就此诞生!

Linux 系统下的所有进程都是由其父进程创建而来,进程号为 1 的进程是所有进程的父进程,通常称为 init 进程,它是 Linux 系统启动之后运行的第一个进程,它管理着系统上所有其它进程,init 进程是由内核启动,因此说它没有父进程。

一个进程的生命周期便是从创建开始直至其终止。

3.2 进程的终止

进程有两种终止方式:异常终止和正常终止

正常终止:在 main 函数中使用 return 返回、调用 _exit()、exit()函数结束进程。

异常终止:在程序当中调用 abort()函数异常终止进程、当进程接收到某些信号导致异常终止、打开文件失败等等。


如果喜欢请不吝给予三连支持!

小海编程心语录-CSDN博客

 

http://www.15wanjia.com/news/53083.html

相关文章:

  • 网站建设设计设计网络推广工作内容
  • 国外网站内容去哪些平台做百度大搜
  • cdn如何做网站备案seo是什么专业
  • 二手站网站怎做徐州seo网站推广
  • 濮阳网络诈骗2最新消息东莞关键词优化推广
  • 网站备案多个域名备案单上填几个如何建立自己的网页
  • 网站的设计与开发的图片武汉网站推广优化
  • 怎样在网站上做链接湖南省人民政府
  • 宠物电商网站模板品牌策划公司哪家好
  • 常州网站建设开发场景营销
  • python语言基础seo外包靠谱
  • 客户网站做供应商自荐有用吗高明公司搜索seo
  • 外国人做的汉字网站如何免费注册一个网站
  • 沈阳做网站 0诚金网络专业百度权重10的网站
  • 国家企业信息查询网站磁力猫torrentkitty官网
  • WordPress下如何用页面做侧边栏中山百度seo排名公司
  • 公众号怎么运营起来seo优化需要做什么
  • 做站群网站会被k吗网络营销毕业论文范文
  • 的广州建网站的公司win10系统优化软件哪个好
  • 自己做的网站服务器开了进不去娄底seo
  • 高端品牌网站建设(杭州)seo的作用
  • 张家港建设局网站竞价账户
  • 网站建设商业计划书网络营销就是
  • wordpress twentyten 漏洞抖音关键词排名优化软件
  • 个人网站备案不通过软件外包公司
  • 查询网站流量上海职业技能培训机构
  • 政府网站 建设目标百度知道合伙人官网登录入口
  • 杭州萧山区专门做网站的公司发软文
  • windows2012iis网站默认设置关键词有哪些?
  • 深汕特别合作区包括哪些地方沈阳网站seo公司