操作系统相关知识

131 阅读4分钟

操作系统

计算机硬件

计算机由五大基本单元组成:控制器、运算器、存储器单元、输入单元、输出单元

计算机硬件联系图.jpg

操作系统

操作系统(Operating System,OS) 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。

操作系统.jpg

操作系统启动流程:

操作系统启动流程.jpg

Linux基本组成:

Linux基本组成.jpg

Linux基本组成:

Linux体系结构.jpg

·内核是硬件与软件之间的中间层 ·内核是一个资源管理程序 ·内核提供一组面向系统的命令

Linux系统结构

进程管理

・进程是正在行的一个程序或命令 ・进程有自己的地址空间,占用一定的系統资源 ・一个CPU核同一时间只能运行一个进程 ・进程由它的程ID(PID)和它父程的程ID(PPID)唯一别

linux进程是一个树形结构:

通过父进程来拉起一个子进程,即将父进程作为一个模板来创建一个新进程,然后将子进程的系统资源内容映射到新进程当中,所以它并不是通过接口来创建新进程的。

比如:Linux启动时,会拉起pid 0的进程,0进程启动后会拉起pid 1和pid 2进程,1进程是所有用户进程的父进程,2进程是所有内核进程的父进程;所以后续再创建一个用户进程都是以1进程为模板来创建的。

linux进程树形结构.jpg

进程调度

进程调度.jpg

·一个CPU核同一时间只能运行一个进程 ·每个进程有近乎相等的执行时间 ·对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复 ·进程执行消耗时间和进程量成正比

进程的系统调用:

进程的系统调用.jpg

文件系统

文件系统.jpg

树状文件系统.jpg

虚拟文件系统:

Linux在中间层做了一层抽象和模糊也就是虚拟文件系统,抹平了不同文件的差异,最终把指令发到不同的文件类型当中,来达到可以进行读写的操作;其实就是打通了各种文件类型,然后保证所有操作都是统一的;

虚拟文件系统.jpg

文件读取流程:

当服务器接受到一个用户请求的时候,回去找请求对应的一些文件(需要将文件内容读取出来再返回给用户);

读:

(1)首先,该进程会去用户缓冲区寻找,如果有(即命中)就会直接读取并返回;如果没有执行操作(2)。

(2)没有找到(命中)的话,会发起一次系统调用(I/O请求),该进程就会从用户态切换到内核态,然后该(内核)进程会从内核缓冲区读取/找是否有缓存,如果有的话,就会向CPU发送指令将内容拷贝到用户缓冲区;如果没有执行操作(3)。

(3)没有找到的话,会通过DMA直接存储访问,发起读取磁盘文件的请求,然后DMA会将文件数据内容拷贝到内核缓冲区,然后再向CPU发送指令,CPU就会将内核缓冲区的文件拷贝到用户缓冲区,最后再读取该数据内容,

写:

之后再通过写的流程,将用户缓冲区数据通过CPU拷贝到socket缓冲区,最终再通过DMA拷贝到网卡返回给用户。

其中DMA可以直接跟磁盘进行交互,获取磁盘数据,拷贝到内核缓冲区。

操作系统加入缓冲区的作用就是减少对系统的调用次数,集中调用,提高系统性能

文件读取流程.jpg

文件权限

文件权限.jpg

用户权限

用户权限操作:

用户权限操作.jpg

软件包

·软件包 通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库。 ·软件包管理 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

软件包管理工具:

软件包管理工具.jpg