Linux 学习笔记(九)—— 进程概念

一、冯诺依曼体系结构

冯诺依曼体系机构图

外设:

  • 存储器:就是内存;
  • 输入设备:键盘、网卡、磁盘...
  • 输出设备:显示器,网卡,磁盘,扬声器...

CPU:

  • 计算器:对我们的数据进行计算任务(算数运算、逻辑运算);
  • 控制器:对我们的计算硬件过程进行一定的控制;

有的设备是纯的输入,有的设备是纯的输出,也有既是输入也是输出的设备;

每一个组件都是独立的个体,因此想要它们一起工作,各个单元都必须用“线”连接起来:1、系统总线(CPU和内存交互);2、IO总线(内存和外设);

  • 不考虑缓存的情况,这里的CPU只能对内存进行读写,不能访问外设;
  • 外设要输入/输出数据也只能从内存中读取或写入内存;

二、操作系统

操作系统是一款软硬件资源管理器,它也是一个基本的程序集;

  • 内核(内存管理、文件管理、驱动管理、进程管理)
  • 其它程序(例如函数库、shell程序等)

操作系统层状结构:

底层硬件 | 驱动程序 | 操作系统 | 系统调用接口 | 用户操作接口 | 用户

注意:操作系统不相信任何用户,所有访问操作系统的行为,只能通过系统调用完成

设计操作系统的目的:

  • 与硬件交互,管理所有的软硬件资源
  • 为用户(普通用户(应用程序),程序员)提供一个良好的执行环境(稳定、安全、高效)

管理方式:

  • 先描述后组织,即先用结构体描述对象,再将管理问题转化为对数据结构的增删查改;

三、进程

一个已经加载到内存中的程序和数据 + 操作系统为它生成的PCB,就是一个进程

多个PCB组成数据结构,CPU对这个数据结构进行管理;一个PCB可能处在多个不同的数据结构里,即可能会被放置在不同的队列里;

PCB(process control block):描述进程所有的属性(PID、状态、优先级、代码在内存中的指针)的结构体【在Linux中是task_struct,task_struct是PCB的一种,基本组织方式是双链表

指令:ps ajx  ——  显示所有的进程及其信息

进程文件:/proc 该目录下会实时生成/删除/更新以PID命名的所有进程的目录,PID目录下会存储该进程下的属性文件;

task_struct内容分类:

  • 标识符:描述本进程的唯一标识符,用来区别其它进程;
  • 状态:任务状态;
  • 优先级:相对于其它进程的优先级;
  • 程序计数器:程序中即将被执行的下一条指令的地址;
  • 内存指针:包括程序代码和数据的指针和与其它进程共享的内存块的指针;
  • 上下文数据
  • I/O状态信息
  • 记账信息
  • 其它

/proc/PID/exe—>代码在磁盘中的地址

/proc/PID/cwd—>当前进程的工作目录,也是代码在磁盘中所在的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值