auto commit
This commit is contained in:
parent
ac16869343
commit
e3a5eb28ef
|
@ -1,6 +1,7 @@
|
|||
<!-- GFM-TOC -->
|
||||
* [一、 概述](#一-概述)
|
||||
* [操作系统基本特征](#操作系统基本特征)
|
||||
* [操作系统基本功能](#操作系统基本功能)
|
||||
* [系统调用](#系统调用)
|
||||
* [大内核和微内核](#大内核和微内核)
|
||||
* [中断分类](#中断分类)
|
||||
|
@ -54,14 +55,41 @@
|
|||
|
||||
异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
|
||||
|
||||
## 操作系统基本功能
|
||||
|
||||
### 1. 进程管理
|
||||
|
||||
进程控制、进程同步、进程通信、死锁处理、处理机调度等。
|
||||
|
||||
### 2. 内存管理
|
||||
|
||||
内存分配、地址映射、内存保护与共享和内存扩充等功能。
|
||||
|
||||
### 3. 文件管理
|
||||
|
||||
文件存储空间的管理、目录管理及文件读写管理和保护等。
|
||||
|
||||
### 4. 设备管理
|
||||
|
||||
完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虛拟设备等功能。
|
||||
|
||||
## 系统调用
|
||||
|
||||
如果一个进程在用户态需要用到操作系统的一些功能,就使用系统调用从而陷入内核,由操作系统代为完成。
|
||||
|
||||
需要由系统调用请求的功能有设备管理、文件管理、进程管理、进程通信、存储器管理等。
|
||||
|
||||
<div align="center"> <img src="../pics//tGPV0.png" width="600"/> </div><br>
|
||||
|
||||
Linux 系统的系统调用有以下这些:
|
||||
|
||||
| Task | Commands |
|
||||
| :---: | --- |
|
||||
| 进程控制 | fork(); exit(); wait(); |
|
||||
| 进程通信 | pipe(); shmget(); mmap(); |
|
||||
| 文件操作 | open(); read(); write(); |
|
||||
| 设备操作 | ioctl(); read(); write(); |
|
||||
| 信息维护 | getpid(); alarm(); sleep(); |
|
||||
| 安全 | chmod(); umask(); chown(); |
|
||||
|
||||
## 大内核和微内核
|
||||
|
||||
### 1. 大内核
|
||||
|
@ -245,7 +273,7 @@ void P2() {
|
|||
|
||||
<font size=3> **使用信号量实现生产者-消费者问题** </font> </br>
|
||||
|
||||
题目描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品;只有缓冲区不为空,消费者才可以拿走物品。
|
||||
问题描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品;只有缓冲区不为空,消费者才可以拿走物品。
|
||||
|
||||
因为缓冲区属于临界资源,因此需要使用一个互斥量 mutex 来控制对缓冲区的互斥访问。
|
||||
|
||||
|
@ -359,7 +387,7 @@ end;
|
|||
|
||||
## 进程通信
|
||||
|
||||
进程通信可以看成是不同进程间的线程通信,对于同一个进程内线程的通信方式,主要使用信号量、条件变量等同步机制。
|
||||
<div align="center"> <img src="../pics//aa202729-769d-4d2a-b103-f45b412ceaf4.jpg"/> </div><br>
|
||||
|
||||
### 1. 管道
|
||||
|
||||
|
@ -507,9 +535,6 @@ void test(i) { // 尝试拿起两把筷子
|
|||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
# 三、死锁
|
||||
|
||||
## 死锁的必要条件
|
||||
|
@ -741,6 +766,7 @@ CSCAN 对 SCAN 进行了改动,要求磁头始终沿着一个方向移动。
|
|||
- Tanenbaum A S, Bos H. Modern operating systems[M]. Prentice Hall Press, 2014.
|
||||
- 汤子瀛, 哲凤屏, 汤小丹. 计算机操作系统[M]. 西安电子科技大学出版社, 2001.
|
||||
- Bryant, R. E., & O’Hallaron, D. R. (2004). 深入理解计算机系统.
|
||||
- [Operating System Notes](https://applied-programming.github.io/Operating-Systems-Notes/)
|
||||
- [进程间的几种通信方式](http://blog.csdn.net/yufaw/article/details/7409596)
|
||||
- [Operating-System Structures](https://www.cs.uic.edu/\~jbell/CourseNotes/OperatingSystems/2_Structures.html)
|
||||
- [Processes](http://cse.csusb.edu/tongyu/courses/cs460/notes/process.php)
|
||||
|
|
BIN
pics/aa202729-769d-4d2a-b103-f45b412ceaf4.jpg
Normal file
BIN
pics/aa202729-769d-4d2a-b103-f45b412ceaf4.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
Reference in New Issue
Block a user