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

成都网站建设优点代发广告平台

成都网站建设优点,代发广告平台,工程建设强制性标准,建设企业网站的意义目录 一,操作系统(Operator System) 1-1概念 1-2设计操作系统的目的 1-3核心功能 1-4系统调用和库函数概念 二,进程(Process) 2-1进程概念与基本操作 2-2task_struct结构体内容 2-3查看进程 2-4通…

目录

一,操作系统(Operator System)

1-1概念

1-2设计操作系统的目的

1-3核心功能

1-4系统调用和库函数概念 

二,进程(Process)

2-1进程概念与基本操作

 2-2task_struct结构体内容

2-3查看进程

2-4通过系统调用创建进程 

三,进程状态

 运行状态(running)

阻塞状态(sleeping)

挂起状态

z(zombie)僵尸状态

僵尸进程危害

孤儿进程


一,操作系统(Operator System)

1-1概念

任何计算机内部都包含一个基本的程序集合,成为操作系统(OS)。

操作系统包括:

  • 内核(进程管理,进程调度,文件管理,驱动管理等)
  • 其他程序(例如函数库,shell程序等)

1-2设计操作系统的目的

对下,与硬件交互,管理所有的软硬件资源

对上,为用户程序(应用层程序)提供一个良好的执行环境

1-3核心功能

操作系统“管理”硬件。

如何管理:

  • 先描述起来,用struct结构体描述信息
  • 再组织,用链表或者其他高效的数据结构将struct对象组织起来

1-4系统调用和库函数概念 

在开发角度,操作系统对外会表现为一个整体,但是会暴露自身的部分接口,供上层开发使用,这部分由操作系统提供的接口,称为系统调用。

系统调用在使用上,功能比较基础,对用户的要求相对较高,所以,有心的开发者会对部分系统调用做封装,从而形成库,有了库,就很方便上层用户和开发者进行二次开发。

二,进程(Process)

2-1进程概念与基本操作

概念:进程是指程序的一个执行实例,正在执行的程序等。

内核层面概念:每个进程拥有独立的内存空间,系统资源和执行状态,是操作系统进行资源分配和调度和核心对象。

操作系统描述进程的的数据结构—PCB(process control block)

PCB基本概念:进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。

  • 在Linux操作系统下的PCB是:task_struct
  • task_struct是Linux内核的⼀种数据结构,它会被装载到RAM(内存)⾥并且包含着进程的信息。

进程=内核数据结构+自己的代码和数据。

进程=task_struct+自己的代码和数据。 

同一时刻,可能会有多个可执行程序被加载到内存,而操作系统要对这些可执行程序进行管理, 在操作系统层面上,就会在内部会建立一个task_stuct 对象,里面保存了该可执行程序的代码地址,数据地址等各种信息。将这些task_struct使用链表或者其他数据结构管理起来,那么操作系统对进程的管理就转化为对链表的管理。

 2-2task_struct结构体内容

  • 标识符:描述本进程的唯一标识符,用来区别其他进程
  • 状态:任务状态,退出码,退出信号等。
  • 优先级:相对于其他进程的优先级
  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
  • 上下文数据: 进程执⾏时处理器的寄存器中的数据
  • IO状态信息: 包括显⽰的IO请求,分配给进程的IO设备和被进程使用的文件列表。
  • 其他信息......

2-3查看进程

1,进程的信息可以通过/proc系统文件夹查看

如:要获取PID为1的进程信息,你需要查看 /proc/1 这个文件夹。

2,大多数进程信息同样可以使用top和ps这些用户及工具来获取

ps aux  #显示所有进程信息

top  #动态查看进程资源占用

3,通过系统调用获取进程标识符 

系统调用

getpid()   #当前进程ID(PID)

getppid() #父进程ID(PPID)

 

2-4通过系统调用创建进程 

  • fork有两个返回值
  • 父子进程共享代码,数据格子开辟空间,私有一份(采用写时拷贝)
  • fork之后通常要用if进行分流

创建一个子进程,将父进程的task_struct会拷贝一份给子进程,但是会有部分的数据时需要修改的,比如进程的唯一标识符pid。子进程会共享父进程的代码数据,相当于发生了浅拷贝。

 pid_t pid = fork();
if (pid == 0) {
    // 子进程代码
} else {
    // 父进程代码
}

三,进程状态

操作系统中会存在多个进程。每个进程可能会存在不同的状态,有的进程正在运行,有的进程正在被调度,有的进程处于挂起等等。CPU要执行这些进程,这些进程的task_struct中会保存指向代码和数据的指针。操作系统会维护一个运行队列(running queue),存放要运行的task_struct,这个队列就叫做调度队列,其中的一个个task_struct就是要被调度的进程。

本质上,进程状态就是task_struct结构体中的一个变量,用来记录当前进程的状态,在操作系统内部通过宏定义的方式,标识不同的状态。

例如,下面的状态在Kernel源代码的定义:

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睡眠状态(sleeping): 可中断休眠,浅度睡眠,就是阻塞状态。该状态下的进程是可以被杀掉的。
  • D(Disk sleep):不可中断休眠,Disk是磁盘的意思。该状态下的进程是无法被杀掉的。比如一些进程在进行IO的时候,是不允许被杀掉的。在这个 状态的进程通常会等待IO的结束。
  • T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停⽌(T)进程。这个被暂停的 进程可以通过发送 SIGCONT 信号让进程继续运行。
  • X死亡状态(dead):这个状态只是⼀个返回状态,你不会在任务列表里看到这个状态。
  • t(trancing stop):追踪状态,对我们的程序进行debug调试时的状态。打端点,进程就被暂停了。

 运行状态(running)

只要进程在调度队列中,都处于运行状态。

阻塞状态(sleeping)

以scanf为例,当执行scanf从键盘读取数据时,未输入数据时,操作系统会将当前进程的task_struct从调度队列中移除,放入设备的阻塞队列中,此时,该进程就处于阻塞状态。直到键盘响应,会将该进程重新放入调度队列的尾部,继续运行。

挂起状态

在磁盘上,会存在一块特定的分区,叫做swap分区。当内存资源严重不足时,操作系统会将一些不会被调度的进程的代码和数据交换到磁盘的swap分区,在操作系统内部只保留task_struct部分。此时的状态称为挂起状态。

阻塞挂起状态:将阻塞队列中的进程 唤出到磁盘的swap分区上

阻塞运行状态: 将运行队列末端的进程唤出到磁盘的swap分区上

z(zombie)僵尸状态

我们创建子进程的目的,是为了让子进程完成某种工作的。子进程完成后,父进程需要直到完成的信息。所以子进程在执行完后,必须要等待父进程获取它的退出信息,获取之前,该子进程的状态就是Z状态,僵尸状态。

当一个进程结束后,它的代码和数据就会被释放,所以它的退出信息只会保存在task_struct中。

僵尸进程危害

维护退出状态本⾝就是要⽤数据维护,也属于进程基本信息,所以保存在task_struct(PCB)中,
换句话说,Z状态⼀直不退出,PCB⼀直都要维护。
那⼀个父进程创建了很多⼦进程,就是不回收,就会造成内存资源的浪费。
因为数 据结构对象本⾝就要占用内存。

孤儿进程

父进程如果提前退出,那么⼦进程后退出,进入Z状态之后,那该如何处理呢?
父进程先退出,子进程就称之为“孤儿进程”。
孤儿进程被1号进程领养,就是要被操作系统领养。此时的子进程会成为后台进程。
http://www.dtcms.com/wzjs/380440.html

相关文章:

  • 福州正规网站建设公司报价广州百度搜索优化
  • 网站域名后缀意义网络营销的招聘信息
  • 房地产开发公司招聘360优化大师旧版
  • 山东省建设招标信息网站软件开发工具
  • bootstrap 门户网站哈尔滨seo优化培训
  • 网站根目录表示广州软文推广公司
  • 做一个网站难不难百度快速收录方法
  • 网站建设技术文档阿里指数查询官网入口
  • 百度推广app下载农大南路网络营销推广优化
  • 网站在线提交询盘系统 能直接发到邮箱小红书推广平台
  • 做网站可以赚钱吗百度上怎么发布作品
  • 网站建设培训达内东莞市民最新疫情
  • 门户网站 方案店铺运营
  • 设备免费做网站推广惠州关键词排名提升
  • 亚马逊做网站网络营销外包顾问
  • 优质公司网站拉新推广渠道
  • 网站开发需要学什么语言民生热点新闻
  • 建一个网站的程序广告营销推广方案
  • 网站建设合同英文模板下载营销推广费用预算表
  • 猪八戒网仿照哪个网站做的天津做网站的公司
  • 野花香电视剧在线观看高清windows11优化大师
  • ai做图标教程网站品牌推广网络公司
  • 哪些网站可以免费做h5我想在百度上发布广告怎么发
  • 韩国建设部网站宁德市属于哪个省
  • 哪家网站建设好seoapp推广
  • 青岛企业建站程序俄罗斯搜索引擎入口 yandex
  • 拍卖网站建设企业文化标语
  • 如何做一网站首页华为手机业务最新消息
  • 房产网站做那个比较好优化大师的使用方法
  • 个人建设网站服务器怎么解决方案湘潭高新区最新新闻