【校招 --阶段一 操作系统基础】进程概念

一、操作系统概念
概念:

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)

【校招 --阶段一 操作系统基础】进程概念_第1张图片

设计OS的目的

与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境
计算机管理硬件

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构
    先描述,在组织

总结

1 os是一款搞管理的软件,软硬件管理
2 管理,要有决策权
3 管理(如何):先描述,在组织

系统调用和库函数

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分
由操作系统提供的接口,叫做系统调用。
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统
调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发

二 、进程

【校招 --阶段一 操作系统基础】进程概念_第2张图片

课本概念:程序的一个执行实例,正在执行的程序等
内核观点:担当分配系统资源(CPU时间,内存)的实体。

描述进程-PCB

进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct

task_struct-PCB的一种

在Linux中描述进程的结构体叫做task_struct。
task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。

task_ struct内容分类:

标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息

查看进程
在linux中使用ps aux |head -1 && ps aux | grep mymain可以查看mymain进程的信息
在这里插入图片描述
进程的信息可以通过/proc 系统文件夹查看

通过系统调用获取进程标示符(pid)

#include 
#include 
#include 
int main()
{
printf("pid: %d\n", getpid());
printf("ppid: %d\n", getppid());
return 0;
}

【校招 --阶段一 操作系统基础】进程概念_第3张图片
【校招 --阶段一 操作系统基础】进程概念_第4张图片
为什么每次的ppid都不同?
bash能不能挂?不能!bash也是一个进程->bash创建子进程->交给子进程->进程是具有独立性的
bash->运行原理:bash叫做命令行解释器,通常是如何解释的呢?通过创建子进程,让子进程去完成对应的任务

你可能感兴趣的:(校招,linux,校招,操作系统,进程)