目录
♫什么是硬件
♫什么是软件
♫什么是操作系统
♫什么是进程
♫PCB的相关属性
♫内存管理
♫进程间通信
♫什么是硬件
现代计算机大多遵循冯大佬提出的冯诺依曼体系结构,即计算机由cup(包括运算器和控制器),存储器,输入设备和输出设备组成。冯诺依曼体系结构说的就是一种计算机硬件的结构。硬件是计算机系统中的实体组件(主机、显示器、键盘、鼠标、打印机、扫描仪、存储设备等),能够影响计算机的性能和稳定性,通常由电子、机械和电路组成,它们被设计为执行特定的任务,并且与计算机软件和操作系统配合使用,从而实现计算机系统的功能。
♫什么是软件
软件是指由计算机程序和相关数据组成的计算机系统中的部分。它是计算机系统中的一种非物质组成部分,与硬件相对应。软件可以分为系统软件和应用软件两大类。
系统软件:系统软件是指操作系统、编译程序、驱动程序等可以控制计算机硬件和支持应用软件运行的程序。
应用软件:应用软件是指各种具有特定功能的程序,如办公软件、游戏、浏览器等。
♫什么是操作系统
操作系统(Operating System,简称OS)是一种管理计算机硬件和软件资源的系统软件。
对于硬件:操作系统通过设备驱动程序与计算机的硬件进行交互,控制硬件设备的运行状态,管理输入输出设备等,使得应用程序可以通过操作系统间接地使用硬件,而不用直接与硬件打交道。
对于软件:操作系统负责管理系统资源,包括内存、CPU时间、进程、线程等,提供进程、线程、内存、文件系统等管理,为应用程序提供了一个稳定的运行环境。
操作系统还可以划分为驱动程序(用于与硬件设备进行通信和控制的一种软件),操作系统内核(操作系统的核心,对上提供稳定的运行环境,对下管理硬件资源),系统调用(操作系统给应用软件提供的API)三部分,当有程序想调用硬件设备,需要先通过系统调用,把操作指令告诉给系统内核,内核再调用驱动程序。进而操作硬件设备。
♫什么是进程
一个运行起来的程序就是一个进程,在电脑的任务管理器可以看到本机正在运行的进程:
可以看到程序一旦运行起来,操作系统就会为它们分配一些资源,所以,进程是操作系统进行资源分配的基本单位。
注:操作系统分配CPU时采用并行(同一时刻,两个核心上的进程同时运行)和并发(同一时刻,一个核心上只能运行一个进程,但进程间切换的够快,让人感觉几个进程同时运行)两种方式
进程是重要的软件资源,是由操作系统负责描述和组织的:
描述:操作系统基本上都是由C/C++(性能高)写的,它们是通过C语言的结构体来描述进程的,这个结构体也叫作PCB(进程控制块)
组织:操作系统是通过类似双向链表的结构来组织进程的,创建一个进程就是创建一个PCB插入链表,销毁一个进程就是删掉一个PCB节点,任务管理器上的进程表就是遍历链表的结果
♫PCB的相关属性
进程控制块(PCB)是操作系统中用于管理进程的数据结构,它包含了许多进程相关的属性,其中一些最重要的属性如下:
进程标识符(PID):每个进程都有唯一的PID,操作系统通过PID来识别和管理进程。
内存管理信息:进程的内存管理信息,如内存分配情况、内存保护等都可在PCB中找到。
文件描述符表:如果进程打开了文件,那么PCB中会记录一个文件描述符表,用于记录进程打开的文件及其状态。
进程状态:进程可以处于运行、就绪、阻塞等状态之一。PCB包含了当前进程的状态。
进程优先级:PCB中也包含了当前进程的优先级,操作系统通过优先级来调度进程。
CPU寄存器的值:PCB中记录了进程在CPU寄存器中的值,这些值可用于保存进程的上下文信息(进程执行的“中间状态”),或在进程暂停时恢复进程的执行。
记账信息:统计每一个进程在CPU上占用的时间和执行的指令数目来调整进程的调度。
IO状态:PCB还包含了当前进程IO操作的状态,如等待读写、正在读写等。
♫内存管理
为了避免一个进程因为越界访问而操作另一进程的内存地址,进程所用的内存空间是虚拟地址(不是直接指向物理内存中的地址,是可变的),而不是物理地址(对应的是实际存储器中的位置,是不可变的)。通过操作系统和专门的硬件设备可以将虚拟地址映射到物理地址上,操作系统内核一旦发现进程越界访问,就会反馈错误信号,终止该进程。
♫进程间通信
内存管理能有效的隔绝进程,但有时进程间需要进行数据交换,这就得在隔离的基础上开个口子。进程间通信的实现方法有很多种,它们的核心思路是创建一个多个进程都能访问的公共空间,基于这个空间来进行数据交互。