一、背景

1、操作系统(Operator System)的概念:

任何计算机都包含一个基本的程序集合,称为操作系统(简称OS)。笼统的理解,操作系统包括:

1)内核,其含有内核管理、进程管理、驱动管理和文件管理。

2)其他程序,例如:函数库、shell程序等等。

2、设计OS的目的:

1)与硬件交互,管理所有的软硬件资源;

2)为用户程序(应用程序)提供一个良好的执行环境。

3、定位

管理好软硬件资源。

4、系统调用和库函数概念:

1)系统调用:操作系统对外是一个整体,但是会露出几个接口,以供上层开发利用。这部分由操作系统提供的接口就叫做系统调用。

2)库函数:开发者对系统调用进行封装形成的集合,就叫做库函数。库有利于用户和开发者的使用。

5、总结:

计算机管理硬件

1)描述起来用结构体;

2)组织起来用链表或其他高效的数据结构。

二、进程

1、基本概念:

1)通俗的观念:程序的一个执行实例,或正在执行的程序。

2)内核的观点:担当分配系统资源(CPU时间和内存)的实体。

2、基本元素:

进程的两个基本元素是程序代码和数据集。

注意:程序代码可能被执行相同程序的其他进程共享。进程是一种动态描述,但是并不代表所有进程都在执行,因为进程在内存中因策略和调度需求会处于不同的状态。

3、进程控制块(PCB)

1)含义:

进程信息被放在一个进程控制块的数据结构中,可以理解为进程的属性的集合,称之为process control block ,简称PCB。

2)task_struct – PCB的一种

A、在Linux中描述进程的结构体叫做task_struct,

B、task_struct会被装载到RAM(内存)并且包含着进程的信息。

3)task_struct内容分类

A、标识符:用于区别其他进程。

B、状态:任务状态、退出信息和退出代码等。

C、优先级:进程执行的先后顺序。

D、程序计数器:程序中即将被执行的下一条指令的地址。

E、内存指针:包括程序代码和进程相关数据的指针,及其他进程共享内存块的指针。

F、上下文数据:进程执行时处理器的寄存器中的数据(学籍档案、寄存器)。

G、I/O的状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

H、记账信息:包括处理器的时间总和,时间限制,记账号等。

4、组织进程

在内核中可以找到进程,所有运行在系统里的进程都以task_struct链表的形式存在内核里。

注:进程控制块是操作系统能够支持多进程和多处理的关键工具。可以说:进程是由程序代码、相关数据和进程控制块组成的。

5、查看进程

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

【例】获取PID为1的进程信息。

注:大多数进程信息同样可以使用top和ps这些用户级工具来获取。

【例】

释:

A、UID:执行者的身份。

B、PID:本进程代号。

C、PPID:父进程代号。

D、PRI:本进程被执行的优先级,其值越小越早被执行。

E、NI:本进程的nice值。

2)通过系统调用获取进程标识符

A、进程id(PID)

B、父进程id(PPID)

【例】

其程序为:

3)通过系统调用创建进程-fork初识

A、可通过运行man fork,认识fork

B、fork有两个返回值

C、父进程代码共享,数据各自开辟空间,私有一份(采用写时拷贝)。

【例】

其程序如下:

注:fork之后通常用if进行分流

【例】

程序为:

#include

#include

#include

int main()

{

int ret = fork();

if(ret < 0){

perror("fork");

return 1;

}

else if(ret == 0){ //child

printf("I am child : %d!, ret: %d\n", getpid(), ret);

}else{//father

printf("I am father : %d!, ret: %d\n", getppid(), ret);

}

sleep(1);

return 0;

}

linux链表概念,【链表Linux面试题】面试问题:进程的基本概念… - 看准网相关推荐

  1. 腾讯linux内核面试,【腾讯谷歌Linux面试题】面试问题:浏览器内核差异… - 看准网...

    浏览器内核的差异 2017年04月19日 23:47:28 阅读数:185 浏览器内核: 浏览器最重要最核心的部分是"render engine",即解释引擎,专门负责对html, ...

  2. 计算机通信网络面试题,【算法通信面试题】面试问题:计算机网络(七… - 看准网...

    可靠传输的工作原理 TCP发送的报文段是交给IP层传送的.但IP层只能提供尽最大努力服务.所以TCP必须采用适当的措施才能使两个运输层之间的通信变得可靠. 理想的传输条件: (1)传输信道不产生差错. ...

  3. c语言面试题东软,【东软集团程序员Java东软集团C语言面试题】面试问题:东软java面… - 看准网...

    当天我很早的就来到面试地点,其实我们还有课<算法分析与设计>,但是我们逃了吧,逃课的不止我一人,还有王凯,还有唐建军,王川,还有我的好友刘冠春.他们逃课也许是为了对面试做一个充分的准备吧, ...

  4. c语言fwrite写字符串数组,【字符串数组面试题】面试问题:C语言 文… - 看准网...

    1.文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出. 存储格式: 145811  fuxin      ...

  5. js 跳转到指定位置 高德地图_【高德字符串JavaScript面试题】面试问题:高德地图Js … - 看准网...

    申请JSAPI的开发者key 申请地址:http://lbs.amap.com/dev/key 引入高德地图JavaScript API文件: 创建地图容器 在页面body里你想展示地图的地方创建一个 ...

  6. 博雅互动android面试题,【博雅互动怎么样?】-看准网

    大概流程:1.去到前台领取 [应聘者表格]和相应岗位的笔试题: 2.做完笔试题,直接技术面.笔试题主要分为选择题.简答题和编程题. [选择题]主要对基础知识的考核,部分网上也有,可以自己看看,不算难. ...

  7. java笔试完一般多久给通知_【字节跳动一般的话多久能收到面试或笔试通知呢】-看准网...

    缘起 很多人挤破脑袋,破釜沉舟的想进大厂的根本原因还是大厂和小公司真的不一样.我是双非本科15年毕业的,毕业之后就一直在做Android相关方面的开发工作,到18年经历了两家创业公司,一家工作了不到半 ...

  8. 德邦面试java_【德邦物流Java面试】德邦面试被耍经验分享。-看准网

    德邦物流因为人员流动较大,所以常年都在招人,各大招聘网站都有招聘信息,只要大专以上学历,毕业再两年以内,投了简历就会叫你来面试,不过面试容易,想要录取却没那么简单.面试分为四轮,第一轮:笔试(主要是一 ...

  9. python服务器端开发面试_【网易游戏Python面试】python 服务端开发-看准网

    10.21终面已参加,希望能顺利通过终面拿到offer-❤一共三轮,电话面试+笔试+视频面试,视频面试3V110月19日投的新媒体运营的简历,HR说因为是周末,等工作日再联系我,在周一下午三点我接到了 ...

  10. 京东java电话面试问题_【京东Java面试】京东电话技术面试,面试题目完全没思路。-看准网...

    京东2021校招,投了两个岗位,一个是物流方向管培生,一个是物流规划,管培生当时未参加一面(形式群面),后来面了物流规划这个.1.初试(通过)一面为一对一专业面试,形式为线上视频面试,问了一些实习经历 ...

最新文章

  1. 基础、数据、开发、部署,AI 时代企业的全方位升级
  2. linux进程--fork详解(三)
  3. Android ListView 横向滑动删除 Item
  4. Go语言GO111MODULE设置
  5. 【Linux】一步一步学Linux——df命令(79)
  6. Java反射课程教程
  7. 4年,我终于成了千万富翁
  8. 大数据之-Hadoop之HDFS_HDFS组成架构---大数据之hadoop工作笔记0050
  9. EasyRecovery15中文版专业数据恢复软件
  10. UAV进阶论文和书籍
  11. Android 获取应用「唯一标识符」——DeviceID「兼容android 10(Q)」
  12. 用户活跃度分析前端java_计算APP用户活跃度的方法及提升活跃度方案
  13. vuex中的actions
  14. 想学CNC编程的一定要看过来
  15. 神经网络入门(个人理解)
  16. ios用 shell 自动打包静态库(里面包含真机和模拟器)
  17. 在Ubuntu终端使用mkdir创建文件夹后Xftp不能上传文件到文件夹中的问题解决方法
  18. (附源码)spring boot大学生综合素质测评系统 毕业设计 162308
  19. Hive 窗口函数(开窗函数) over
  20. Maven私服创建--Nexus

热门文章

  1. 卷积神经网络之AlexNet网络模型学习
  2. 《Progressive Growing of GANs for Improved Quality, Stability, and Variation》-论文阅读笔记
  3. C语言 查询ASCII码
  4. android版本我的世界,我的世界0.15.4版
  5. 面向对象 — 前端基础小白入门编程详细讲解总结
  6. 美团面试官:为什么不建议把数据库部署在Docker容器内?
  7. 双十一数码好物运动耳机分享,分享六款还不错的运动耳机
  8. 常用的sql语句(持续更新)
  9. 数据库编程(一)JDBC篇
  10. 2021年高处安装、维护、拆除最新解析及高处安装、维护、拆除新版试题