1.冯诺依曼体系结构
1.1冯诺依曼体系结构简介
冯·诺依曼体系结构又叫做普林顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
数据存储“内存”当中。
计算机当中的数据一切皆二进制,因为电流只有正电和负电两种。
1.2冯诺依曼体系结构图解
截止目前,我们所认知的计算机都是一个个硬件组件组成的
输入单元:键盘,鼠标,扫描仪,写板,网卡等。
中央处理单元(CPU):含有运算器和控制器等,可以执行算数运算和逻辑运算。
显示器,打印机,网卡等。
注意
这里的存储器指的是内存,在不考虑缓存的请况下,这里的CPU能且只能对内存进行读写,不能访问外设(输入或者输出设备),外设(输入或者输出设备)要输入或者输出数据,也只能写入内存或者从内存种读取,一句话,所有的设备都只能直接和内存打交道。
2.操作系统
2.1操作系统概念
任何的计算机系统都包含一个基本的程序集合,称为操作系统(OS),笼统的理解,操作系统包含:内核(进程管理,内存管理,文件管理,驱动管理),其他程序(例如库函数,shell程序等等)
2.2操作系统是软件吗
操作系统是软件,操作系统在管理计算机的软件硬件资源,内存申请的过程中,像操作系统申请内存,释放归还给操作系统。这时候我们就需要描述+组织的方式管理,描述可以用结构体(自定义数据类型),组织可以用链表。
操作系统 = 操作系统内核 + 一堆应用
2.3操作系统
CentOS7 ubuntu kali(黑客) redhat
系统调用接口(函数):操作系统为程序员提供的函数,程序调用这些函数可以使用操作系统管理的资源。
库函数:strcpy strlen malloc free printf sleep 库函数就是一帮程序员将难用的系统调用接口重新封装了一遍。
man[函数名称]看左上角,如果为3是库函数,如果是4是系统调用函数。
3.进程概念
3.1程序
就是经过源代码编译出来的文件,这个文件是静态的。
3.2进程
程序运行时的实例,是动态的,从内核的角度来看,进程是操作系统分配资源的实体。
printf("58\n");
// \n会刷新缓冲区
ps aux:查看进程信息
进程控制块(PCB)
进程标识符(PID):在操作系统当中唯一标识一个进程。
进程状态:
并发:多个进程在同一时刻只能有一个进行CPU运算。
并行:多个进程在同一时刻只能由一个进程拥有CPU进行运算,称之为并发。
大的方面来说:就绪,运行,阻塞
R状态(running):运行状态,不一定进程一定在在运行,表明进程要么在运行中,要么在运行队列。
S状态(sleeping):可中断睡眠状态,进程在等待事件完成。
D状态(disk sleep):不可中断睡眠状态,通常会等待IO的结束。
T状态(stopped):停止状态通过发送SIGSTOP信号给进程来停止(T)进程,这里被暂停的进程是可以通过发送SIGCONT信号让进程继续运行。
t状态(tracing stop)
X状态(dead):死亡状态,这个状态只是一个返回状态,你不会在任务列表里面看到这个状态。
Z状态(zombie)