锁是操作系统中实现进程同步的重要机制。 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域。所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据。 同步(Synchronization)是指让两个或多个进程/线程能够 ...
XV 操作系统是MIT . 课程中使用的教学操作系统,是在现代硬件上对Unix V 系统的重写。XV 总共只有一万多行,非常适合初学者用于学习和实践操作系统相关知识。 MIT . 的课程网站是https: pdos.csail.mit.edu . 。XV 操作系统有官方文档,英文版在前面的网站可以下载,中文版翻译参见https: th ar.gitbooks.io xv chinese conte ...
2019-03-26 20:01 1 1213 推荐指数:
锁是操作系统中实现进程同步的重要机制。 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域。所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据。 同步(Synchronization)是指让两个或多个进程/线程能够 ...
Unix文件系统 当今的Unix文件系统(Unix File System, UFS)起源于Berkeley Fast File System。和所有的文件系统一样,Unix文件系统是以块(Block)为单位对磁盘进行读写的。一般而言,一个块的大小为512Byte或者4KB。文件系统的所有 ...
本文将会详细介绍Xv6操作系统中虚拟内存的初始化过程。 基本概念 32位X86体系结构采用二级页表来管理虚拟内存。之所以使用二级页表, 是为了节省页表所占用的内存,因为没有内存映射的二级页表可以不用分配地址来存储。在这个二级页表结构中,每个页的大小为4KB,每个页表的大小也为4KB,每个页表项 ...
最近更新于2021/08/05. 我们以xv6的一个系统调用getpid()为例,观察xv6的系统调用大致过程。 系统调用的声明位于 user.h 中,xv6的用户程序若要使用系统调用需要包括这个头文件,其中getpid()声明如下: int getpid(void); 此函数定义 ...
xv6学习笔记(3):中断处理和系统调用 1. tvinit函数 这个函数位于main函数内 表明了就是设置idt表 1. SETGATE函数 这里的setgate是一个宏定义是用来设置idt表的 下面是函数参数的说明 Sel : 表示对于中断处理程序代码所在段的段选择 ...
1. Overview 要为xv6添加一个系统调用,需要修改以下5个文件: syscall.h syscall.c sysproc.c usys.S user.h 由于Unix v6发行于1975年,下面我们以添加一个返回整数1975的系统调用作为示范来说明如何为 ...
在操作系统中,有三种情况会导致CPU的控制流发生转移:用户态中通过ecall指令进入内核态;异常发生,如除零、访问非法地址;设备中断,如硬盘完成读写请求。上面这些情况可以统称为陷阱(trap)。 陷阱在一般情况下应该是透明的,即当执行完处理程序后能够恢复之前程序的状态。这就要求在陷入内核态时 ...
系统调用:操作系统的程序接口 操作系统实现的完成某种特定功能的过程;为所有运行程序提供访问操作系统的接口 用户程序如何陷入操作系统,请求操作系统为其服务,需要一个硬件处理机制陷入处理机制:计算机系统中控制和实现系统调用的机制 陷入指令:也称访管指令,或异常中断 ...