个人Linux操作系统学习笔记6 - 操作系统与进程初识
目录
- 冯诺依曼体系
- 操作系统
- 为什么要有操作系统
- 进程
- 概念:
- 操作系统怎么管理进程?
- 如何描述进程?
冯诺依曼体系
结论:
在数据层面上,cpu不会和外设之间打交道(输入or输出)
cpu读写数据,只会和内存打交道
我们口中的输入输出设备,是站在内存的角度
也相当于站在加载到内存中的程序的角度
Input和Output,也就是IO
重谈效率问题
计算机数据流动的过程,本质就是数据拷贝的过程
计算机的效率问题,由设备的拷贝效率决定!
存储设备的效率——拷贝的效率
操作系统
任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)
内核4大功能:
内存管理
文件管理
驱动管理
进程管理
为什么要有操作系统
对下,与硬件交互,管理所有的软硬件资源
对上,为用户程序(应用程序)提供⼀个良好的执行环境
操作系统,是一款进行软硬件资源管理的软件!
理解OS管理的本质:
先描述,再组织!
c++语言中,为什么有类和STL?
把现实世界的问题,进行计算机建模的核心规律!
进程
概念:
课本里进程的概念:运行起来的程序,内存中的程序
内核观点:担当分配系统资源(CPU时间,内存)的实体。
当前:进程 = 内核数据结构(task_struct) + 自己的程序代码和数据
程序/可执行文件,指令的本质:程序
(磁盘上的普通文件)
在我们还没有启动进程之前,第一款启动的软件是操作系统!
操作系统也在内存里!
操作系统怎么管理进程?
在操作系统内先描述一个进程(用一个结构体对象进行描述)
如何描述进程?
进程信息被放在⼀个叫做进程控制块的数据结构中,可以理解为进程属性的集合
课本上称之为PCB(process control block), Linux 操作系统下的 PCB 是:task_struct
PCB是一个总成,task_struct是PCB的一种。
即 在 Linux 中描述进程的结构体叫做task_struct
task_struct 是 Linux 内核的⼀种数据结构类型,它会被装载到RAM(内存)里并且包含着进
程的信息。
程序的本质是在磁盘上的一个文件
执行命令的本质就是启动进程
