操作系统计算机原理

计算机操作系统

2019-10-22  本文已影响0人  强某某

操作系统

操作系统的演进

1.png

多道程序设计

操作系统相关概念

操作系统五大功能

进程管理

为什么需要进程?

进程管理之进程实体

2.png
主存中的进程形态
进程控制块(PCB)
进程与线程
描述 进程 线程
资源 资源分配的基本单位 不拥有资源
调度 系统调度的基本单元 独立调度的最小单位
系统开销 进程系统开销大 线程系统开销小
通信 进程IPC 读写同一进程数据通信

进程管理之五状态模型

进程管理之进程同步

为什么需要进程间同步
进程间同步原则

临界资源:指的是一些虽作为共享资源却又无法同时被多个线程共同访问的共享资源。当有进程在使用临界资源时,其他进程必须依据
操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使用共享资源。

进程同步的方法
线程同步

Linux的进程管理

进程的类型
进程的标记

作业管理

作业管理之进程调度

作业管理之死锁

思索是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象
若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或者系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

解决死锁:使用银行家算法

存储管理

存储管理之内存分配与回收

内存分配
动态分区数据结构
1.png 2.png
动态分区分配算法
4.png 5.png
内存回收的四种情况
6.png 7.png 8.png 9.png

存储管理之段页式存储管理

11.png 12.png 13.png 15.png

存储管理之虚拟内存

虚拟内存概述
程序的局部性原理

局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中

虚拟内存的置换算法

Linux的存储管理

Buddy内存管理算法
算法细节
19.png 20.png
Linux交换空间
交换空间使用场景

文件管理

操作系统的文件管理

文件的逻辑结构
辅存的存储空间分配
目录管理
6.png

Linux的文件系统

文件系统概览
Ext文件系统
2.png 3.png 4.png 5.png 6.png 7.png
8.png

设备管理

广义的IO设备

IO设备的缓冲区

SPOOLing技术

线程同步

互斥量

互斥量其实就是保证了关键指令的原子性

1.png

从实现原理上来讲,Mutex(互斥锁)属于sleep-waiting类型的锁。例如在一个双核的机器上有两个线程(线程A和线程B),它们分别运行在Core0和Core1上。假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持有,那么线程A就会被阻塞,

Core0会在此时进行上下文切换(Context Switch)将线程A置于等待队列中,此时Core0就可以运行其它的任务而不必进行忙等待。而Spin lock(自旋锁)则不然,它属于busy-waiting类型的锁,如果线程A是使用pthread_spin_lock操作去请求锁,那么线程A就会一直在Core0上进行忙等待并不停的进行锁请求,直到得到这个锁为止。

所以,互斥量有上下文切换,效率低

原子性
自旋锁
2.png
读写锁
3.png
条件变量

使用fork系统调用创建进程

进程同步

共享内存

5.png

Unix域套接字

上一篇下一篇

猜你喜欢

热点阅读