一.冯诺依曼体系结构
冯诺依曼:奠定了现代计算机的硬件体系结构
计算机硬件体系结构:
输入设备:典型的输入设备-键盘
输出设备:典型的输出设备:显示器
存储器:内存--数据吞吐量达,使用的是易失性介质--数据断电丢失,在计算机中起到一个中间数据缓冲交换的作用
运算器&控制器:中央处理器-cpu
二.操作系统
本质:其实就是一个软件程序。
功能:对计算机上的软硬件进行管理 。
目的:让计算机更好用。
完整的操作系统:内核+外部应用。
系统调用接口:操作系统向上层提供的用于访问内核的接口,但是因为系统调用的接口功能单一,在实现某些功能的时候需要进行复杂的编程,因此针对典型的功能场景,大佬们进行了接口的封装,这种封装出来的接口叫做库函数。
库函数与系统调用接口的关系:库函数是对系统调用接口的一层封装。
三.进程的概念
1. 进程:就是运行中的程序,在操作系统的角度,进程是系统对运行中程序动态运行过程的描述-PCB(进程控制块),在linux下是一个task_struct结构体,系统通过对这个描述实现对程序运行的管理及调度。
2. 描述:标识符,内存指针,上下文数据,程序计数器,进程状态,IO信息······
3.进程状态:
时间片:系统中的cpu分时机制,让每个程序只在cpu上执行一段很短的时间(时间片
命令:ps -aux | grep loop
ps -aux是查看所有进程信息;grep是进行字符串匹配;|是管道符,连接两个命令,将前边命令结果交给后面命令处理;loop:要查看的进程名
linux的进程状态:
运行态-R:正在被执行,以及拿到时间片就能被执行的进程
可中断休眠态-S:一种阻塞态
不可中断休眠态-D:无法被中断打断阻塞,只能等待阻塞的唤醒条件满足后才能被调度执行
停止态-T:什么都不做(跟休眠不一样,休眠是阻塞,停止还会被调度)
僵尸态:进程退出运行了,但是资源没有完全被释放,等待处理的一种状态
僵尸进程:僵尸状态的进程。已经退出运行,但是资源没有完全被释放的进程。因为进程的退出需要保存退出返回值给父进程,父进程没有处理前就不会释放。
产生:子进程先于父进程退出,为了保存返回值,资源没有完全被释放
危害:资源泄露 避免:进程等待
孤儿进程:是父进程先于子进程退出,子进程就会成为孤儿进程。
特性:运行在后台,父进程变为1号进程(退出后不会成为僵尸进程)
守护进程:就是一种特殊的孤儿进程---运行在后台不受任何影响
4.进程创建
pid_t fork(void);---通过复制调用进程(父进程)来创建一个新的进程(子进程)
返回值:在父进程中返回值是子进程的PID(大于0的数);在子进程中返回0;失败返回-1
创建一个进程其实就是创建了一个task_struct结构体,也就是创建了一个pcb,复制了父进程意味着新的task_struct里边大部分的数据都是从父进程pcb中复制过来的(内存指针,上下文数据..)