【操作系统】一文快速了解操作系统

目录

一:操作系统概述

1.1 什么是操作系统(作用)

1.2 操作系统的功能

1.3 操作系统的特征

1.4 并发和并行的区别(重要)

1.5 操作系统的运行机制

1.6 操作系统的内核

1.7 中断机制 

二:进程和线程

2.1 进程的定义

2.2 PCB(进程控制块)的组成

 2.3 进程的特征

2.4 进程的通信

2.5 线程的定义,为什么要引入线程

2.6 线程的特征

2.7 进程的同步和互斥

2.8 信号量机制

2.9 管程

2.10 死锁

三:内存相关知识

3.1 操作系统对内存的管理

3.2 虚拟技术

3.3 内存空间的分配和回收

3.4 根据段页式存储管理寻找具体的目标单元

3.5 虚拟内存的定义和特征

四:文件管理

4.1 硬链接

4.2 软链接

4.3 硬链接和软连接的区别


一:操作系统概述

1.1 什么是操作系统(作用)

操作系统是一种系统软件,负责管理协调硬件,软件等计算机资源的工作

1.2 操作系统的功能

  1. 管理资源
    1. 处理机管理(CPU)
    2. 存储器管理
    3. 文件管理
    4. 设备管理(摄像头,打印机等)
  2. 向用户提供服务
    1. 命令接口
    2. 程序接口
    3. GUI用户图形界面
  3. 对硬件机器扩展

1.3 操作系统的特征

  1. 并发:两个或多个事件在同一时间间隔内发生,在宏观上是同时发生的,在微观是CPU交替执行发生的
  2. 共享:资源共享,系统中的资源可供内存中多个并发的进程共同使用
    1. 互斥共享方式:一个时间端内只允许一个进程访问该资源
    2. 同时共享方式:一个时间端内允许多个进程 “同时” 访问该资源,宏观同时,微观交替进行访问(分时共享)
  3. 虚拟:把一个物理的实体变化成若干个逻辑上的对应物,举个例子:单核CPU运行多个进程就是将一个CPU虚拟成了多个CPU
  4. 异步:进程的执行不是一贯到底的,而是由不可预知的速度向前推进

1.4 并发和并行的区别(重要)

  • 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。在宏观上是同时发生的,在微观是通过CPU时间片技术交替执行发生的
  • 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行

1.5 操作系统的运行机制

【操作系统】一文快速了解操作系统_第1张图片

操作系统具有两种类型的指令

  • 特权指令:不允许用户程序使用的指令(内存清零指令)
  • 非特权指令:允许用户程序使用的指令(普通的运算指令)

问题?:cpu如何判断是否可以执行特权命令

操作系统有两个处理器状态

  • 核心态:可以执行特权指令和非特权指令
  • 用户态:只能执行非特权指令

操作系统具有两种程序

内核程序:内核程序是系统的管理者,可以执行特权指令和非特权指令,运行在核心态

应用程序:为了保证系统能安全运行,应用程序只能执行非特权指令,运行在用户态

1.6 操作系统的内核

内核是指计算机上配置的底层软件,是操作系统最核心,最基本的部分

【操作系统】一文快速了解操作系统_第2张图片

1.7 中断机制 

中断机制的诞生:早期计算机各个程序只能串行执行,系统资源利用率低,为了解决此问题,人们发明了操作系统,利用操作系统的中断机制,将多个程序同时放入内存,实现了多道程序并发执行

中断是CPU从用户态进入核心态的唯一途径

CPU的上下文切换(利用了中断机制)

  • 进程1在运行,CPU中收到计时部件发出的中断信号,让进程1从用户态切换为核心态,对中断进行处理
  • 在核心态,操作系统内核对中断信号进行处理,发现进程1的时间片已经用完了,换进程2运行
  • 进程2运行

二:进程和线程

2.1 进程的定义

进程是程序的一次执行过程,是系统进行除CPU外的资源分配的一个调度单位

进程由PCB(Process Control Block),程序段,数据段三部分组成

2.2 PCB(进程控制块)的组成

【操作系统】一文快速了解操作系统_第3张图片

 2.3 进程的特征

  • 动态性:进程是一次程序执行的过程,是动态产生,变化,消亡的
  • 并发性:内存中有多个进程实体,各进程可并发执行
  • 独立性:进程是能独立运行,独立获得资源,独立接受调度的基本单位
  • 异步性:各进程各自独立,不可预知的速度向前推进,操作系统需要提供“进程同步机制”来解决异步问题
  • 结构性:每个进程都会配置一个PCB,进程由PCB,程序段,数据段三部分组成

进程的状态

也可以是说是线程在运行时的状态

三个状态
运行(running)态:进程占有处理器正在运行。
就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
通常,一个进程在创建后将处于就绪状态。每个进程在执行过程中,任意时刻当且仅当处于上述三种状态之一。

状态的迁移
运行态 > 等待态:等待使用资源或某事件发生,如等待外设传输等
等待态 > 就绪态:资源得到满足或某事件己经发生,如外设传输结束,睡眠时间结束
运行态 > 就绪态:运行时间片到,或出现有更高优先权进程(如windows的抢占时算法)。
就绪态 > 运行态:CPU空闲时被调度选中一个就绪进程执行。

2.4 进程的通信

为了安全保障,一个进程不能直接访问另外一个进程的地址空间

所有有三种方法完成进程间的通信

【操作系统】一文快速了解操作系统_第4张图片

  •  共享存储:在内存空间中,开辟一段空间作为共享空间,所有进程都能访问,但两个进程对共享空间的访问必须是互斥的,操作系统只提供共享空间和同步互斥工具(P,V操作,信号量)
  • 消息传递:利用计算机网络中的通信协议(HTTP协议等)进行通信
  • 管道通信:设置一个共享文件(缓冲区),管道采用半双工通信,不能同时通信,实现双向通道需要建立两个管道,各进程间要互斥访问管道,管道写满时,不能再向管道中写,管道读空时,不能再向管道中读,同时管道没写满时,不能读取,管道没读取完时,不能写

2.5 线程的定义,为什么要引入线程

线程是基本的CPU执行单元,程序执行流的最小单位,是CPU调度的基本单位

引入线程后,不仅进程之间可以并发,进程中的线程也可以并发,提高系统的并发度,减少系统开销。

2.6 线程的特征

  • 线程是CPU调度的基本单位
  • 多CPU计算机中,各个线程可以占用不同的CPU
  • 每个线程都有一个TCB(线程控制块)和线程ID
  • 线程几乎不拥有系统资源
  • 同一进程的不同线程共享进程的资源
  • 共享内存空间,同一进程的线程间通信无须系统干扰

2.7 进程的同步和互斥

  • 进程的同步:为了解决异步问题,异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
  • 进程的互斥:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
  • 临界资源:一次仅允许一个进程使用的共享资源
  • 临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)

进程互斥需要遵守的原则

  • 空闲让进:临界区空闲时,允许一个进程访问
  • 忙则等待:临界区正在被访问时,其他试图访问的进程需要等待
  • 有限等待:要在有限时间内进入临界区,保证不会饥饿
  • 让权等待:进不了临界区的进程,要让出CPU,防止忙等

2.8 信号量机制

信号量:用来表示系统中某种资源的数量

用户进程可以通过操作系统提供的一对原语对信号量进行操作,从而方便实现进程的互斥和进程的同步,

一对原语信号:PV操作 P减少 V增加

P操作的主要动作是: 

①S减1; 

②若S减1后仍大于或等于0,则进程继续执行; 

③若S减1后小于0,则该进程被阻塞后放入等待该信号量的等待队列中,然后转进程调度。 

V操作的主要动作是: 

①S加1; 

②若相加后结果大于0,则进程继续执行; 

③若相加后结果小于或等于0,则从该信号的等待队列中释放一个等待进程,然后再返回原进程继续执行或转进程调度。 

利用信号量实现进程同步

  1. 分析问题,找出哪里需要实现一前一后的同步关系
  2. 设置同步信号量,初始值为0
  3. 在“前操作”之后执行V操作
  4. 在“后操作”之前执行P操作

利用信号量实现进程互斥

  1. 分析问题,确定临界区
  2. 设置互斥信号量,初始值为1
  3. 临界区之前执行P操作
  4. 临界区之后执行V操作

2.9 管程

  • 为什么引用管程?
    • 解决信号量机制编程麻烦问题,易出错的问题
  • 由什么组成?
    • 共享数据结构;        
    • 对数据结构初始化的语句;
    • 一组访问数据结构的方法
  • 基本特征
    • 由外部进程/线程通过管程提供的特点入口才能访问共享数据
    • 每次仅仅允许一个进程在管程内执行某个内部过程
  • 有什么用?
    • 管程可以实现进程同步和进程互斥的操作

2.10 死锁

什么是死锁?

各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进

死锁产生的四个必要条件

  1. 互斥条件:对必须互斥使用的资源争抢才会导致死锁
  2. 不剥夺条件:进程拥有的资源只能主动释放,不可强行剥夺
  3. 请求和保持条件:保持着某些资源不放的同时,请求别的资源
  4. 循环等待条件:存在一种进程资源的循环等待链

三:内存相关知识

3.1 操作系统对内存的管理

操作系统需要对内存做什么?

  • 操作系统负责内存空间的分配和回收
  • 操作系统提供“某种技术”对内存空间进行扩充
  • 操作系统需要提供内存地址转换功能,负责程序的逻辑地址和物理地址的转换
  • 操作系统需要提供内存保护功能,保证各个进程在各种存储空间内运行,互不干扰

如何实现内存空间进行扩充?

        利用虚拟内存

如何实现地址转换?

        绝对装入:编译器负责地址转换

        可重定位装入:装入程序负责地址转换

        动态运行时装入:运行时进行地址转换

如何提供内存保护功能?

        设置上下限寄存器,每个进程只能在当前进程的上下限寄存器内运行

        利用重定位寄存器,界地址寄存器进行判断

3.2 虚拟技术

覆盖技术

将程序分为多个段(多个模块),常用的段常驻内存,不常用的段在需要时调入内存;

覆盖技术内存分为一个“固定区”和“覆盖区”,需要常驻内存的段放在固定区,固定区调入后不再调出,除非程序运行结束;不需要常驻内存的段放在覆盖区,需要时调入内存,不需时调出内存。

交换技术

内存紧张时,换出某些进程腾出内存空间,换入另外的进程

覆盖技术和交换技术的区别

覆盖技术是在同一个程序或进程中;交换技术是在不同进程或作业中

3.3 内存空间的分配和回收

分配分为连续分配管理非连续分配管理

连续分配管理有:单一连续分配,固定分区分配,动态分区分配

【操作系统】一文快速了解操作系统_第5张图片

非连续分配有:分页存储管理,分段存储管理,段页式存储管理

分页式存储管理

  • 内存空间分为一个个大小相等的分区,每个分区为一个内存块,
  • 每个内存块有一个内存编号,从0开始,保证可以不连续分配内存

【操作系统】一文快速了解操作系统_第6张图片

分段式存储管理

  • 进程的地址空间按照自身的逻辑关系划分成若干个段,每个段都有一个段名
  • 每个段在内存空间中占据连续空间,但各段之间可以不相邻

【操作系统】一文快速了解操作系统_第7张图片

段页式存储管理:

  • 分段+分页的结合,
  • 将地址空间按照程序自身的逻辑关系划分为若干个段,在将各段分为大小相等的页面
  • 将内存空间分为与页面大小相等的一个个内存块,系统以块为单位为进程分配内存

【操作系统】一文快速了解操作系统_第8张图片

3.4 根据段页式存储管理寻找具体的目标单元

  1. 由逻辑地址得到段号、页号、页内偏移量
  2. 段号与段表寄存器中的段长度比较,检查是否越界由段表始址、
  3. 段号找到对应段表项
  4. 根据段表中记录的页表长度,检查页号是否越界
  5. 由段表中的页表地址、页号得到查询页表,找到相应页表项
  6. 由页面存放的内存块号、页内偏移量得到最终的物理地址访问目标单元

3.5 虚拟内存的定义和特征

在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存

操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充。基于一下三点。

  1. 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。
  2. 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
  3. 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。

虚拟内存有一下三个主要特征:

  1. 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
  2. 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
  3. 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。

四:文件管理

4.1 硬链接

  • 各个用户的目录指向同一个索引结点
  • 索引结点中需要有链接计数count
  • 某用户想删除文件时,只是删除该用户的目录项,且count--
  • 只有count == 0时才能真正删除文件数据和索引结点,否则会导致指针悬空

4.2 软链接

  • 在一个Link型的文件中记录共享文件的存放路径(Windows快捷方式)
  • 操作系统根据路径一层层查找目录,最终找到共享文件
  • 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link 型文件中的路径去查找共享文件会失败(找不到对应目录项)
  • 用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问

4.3 硬链接和软连接的区别

原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。


用于粗略了解操作系统是干什么用的,不是特别具体,文件管理和IO设备不是特别重要没有写,具体参考王道考研操作系统

你可能感兴趣的:(计算机基础,java)