auto commit

This commit is contained in:
CyC2018 2018-03-20 14:48:44 +08:00
parent ac16869343
commit e3a5eb28ef
2 changed files with 33 additions and 7 deletions

View File

@ -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., & OHallaron, 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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB