" " "通信机制实习报告 " " " " " 目录 内容一:总体概述 3 内容二:任务完成情况 3 任务完成列表(Y/N) 3 具体Exercise的完成情况 3 内容三:遇到的困难以及解决方法 9 内容四:收获及感想 10 内容五:对课程的意见和建议 10 内容六:参考文献 10 内容一:总体概述 本次lab的主要内容是实现线程之间的消息传递,主要分为理论和实践两个部分,理论方 面,我们需要了解Linux消息传递机制,实践方面,我们需要利用nachos模拟Linux消息 传递机制并进行相关测试。 内容二:任务完成情况 任务完成列表(Y/N) "Exercise1"Exercise"Exercise" " "2 "3 " "Y "Y "Y " 具体Exercise的完成情况 本实习希望通过修改Nachos系统平台的底层源代码,达到"实现通信机制"的目标。 Exercise 1 调研Linux中进程通信机制的实现 Linux中进程通信机制主要包括消息传递,共享内存,管道和套接字 消息传递 消息传递通过消息缓冲区实现。消息缓冲区是消息的链表,有足够权限的进程可以 向队列中添加消息,被赋予
2022-12-24 18:15:49 550KB 文档资料
1
此PDF为山东大学大三操作系统课程设计指导书,具体讲的是Nachos系统的实现细节。
2022-11-28 22:00:31 1.01MB 山东大学 Nachos
1
#Caveat 这个存储库在这里是出于历史原因。 作者强烈反对任何形式的抄袭。 #SC_GetReg 这是一个简单的系统调用,我们只是使用函数 machine::ReadRegister 读取寄存器的值,然后返回寄存器中的值 #SC_GetPA 系统调用首先检查它必须失败的各种条件,如果其中任何一个为真,则返回 -1。 否则,我们使用 machine::Translate 将提供的虚拟地址转换为物理地址。 #SC_GetPID 和 SC_GetPPID 一个名为 pidCount 的新静态变量和一个宏 MAX_THREADS 分别在 Thread 类和头文件 thread.h 中定义。 线程类的构造函数被修改为增加 pidCount 并将这个增加的 pidCount 分配给当前线程,因为它是 PID。 (pidCount 以这样的方式初始化,它在 MAX_THREADS 之后环
2022-10-27 01:43:15 166KB C++
1
这个报告是我们的作业,花了将近做好,然后整理成报告
2022-05-30 10:33:52 204KB doc
1
北大 操作系统 nachos实验报告 实验2 非常认真完成的报告
2022-05-30 09:20:25 29KB nachos 实验报告
1
code-linux 操作系统学习 nachos
2022-05-16 20:44:56 2.76MB nachos
1
第一章 绪论 1 第一节 NACHOS概述 1 一、引言 1 二、Nachos教学用操作系统 1 第二节 NACHOS的实验环境 4 一、Nachos的安装 4 二、Nachos的目录结构 4 三、各个部分的编译运行 4 四、应用程序的编译 5 第二章 机器模拟 6 第一节 概述 6 第二节 机器模拟的实现 10 1. Sysdep模块分析(文件sysdep.cc sysdep.h) 10 1.1 PoolFile 函数 10 1.2 OpenForWrite 函数 10 1.3 OpenForReadWrite 函数 10 1.4 Read 函数 10 1.5 ReadPartial 函数 11 1.6 WriteFile 函数 11 1.7 Lseek 函数 11 1.8 Tell 函数 11 1.9 Close 函数 11 1.10 Unlink 函数 12 1.11 OpenSocket 函数 12 1.12 CloseSocket 函数 12 1.13 AssignNameToSocket 函数 12 1.14 DeAssignNameToSocket 函数 12 1.15 PoolSocket 函数 12 1.16 ReadFromSocket 函数 13 1.17 SendToSocket 函数 13 1.18 CallOnUserAbort 函数 13 1.19 Delay 函数 13 1.20 Abort 函数 13 1.21 Exit 函数 14 1.22 RandomInit 函数 14 1.23 Random 函数 14 1.24 AllocBoundedArray 函数 14 1.25 DeallocBoundedArray 函数 14 2. 中断模块分析(文件interrupt.cc interrupt.h) 14 2.1 PendingInterrupt类 16 2.2 Interrupt类 17 2.2.1 内部使用方法 17 2.2.2 内部使用函数 18 2.2.3 对外接口 18 3. 时钟中断模块分析(文件timer.cc timer.h) 20 4. 终端设备模块分析(文件console.cc console.h) 22 5. 磁盘设备模块分析(文件disk.cc disk.h) 23 6. Nachos运行情况统计(文件stats.cc stats.h) 24 第三章 线程管理系统 25 第一节 进程与线程 25 一、进程 25 1. 进程概念 25 2. 进程的状态及状态变化 25 3. 进程调度 26 4. 进程之间的同步和互斥 27 5. 进程的实施 28 6. 进程的创建 28 二、线程 29 1. 线程概念 29 2. 进程和线程的关系 30 第二节 NACHOS的线程管理 31 一、Nachos的线程管理 31 二、Nachos线程管理同实际进程管理的不同 33 第三节 NACHOS线程管理系统的初步实现 34 1. 工具模块分析(文件list.cc list.h utility.cc utility.h) 34 2. 线程启动和调度模块分析(文件switch.s switch.h) 34 2.1 ThreadRoot函数 34 2.2 SWITCH函数 35 3. 线程模块分析(文件thread.cc thread.h) 35 3.1 Fork 方法 37 3.2 StackAllocate 方法 38 3.3 Yield 方法 39 3.4 Sleep 方法 40 4. 线程调度算法模块分析(文件scheduler.cc scheduler.h) 40 4.1 Run方法 41 5. Nachos主控模块分析(文件main.cc system.cc system.h) 41 6. 同步机制模块分析(文件synch.cc synch.h) 42 6.1 信号量 ( Semaphore ) 42 6.2 锁机制 42 6.3 条件变量 43 第四节 线程管理系统作业 45 第五节 实现实例 47 4.1 对线程的改进 47 4.2 对线程调度的改进 48 第四章 文件管理系统 51 第一节 文件管理系统概述 51 一、文件 51 1. 文件结构 51 2. 文件访问 52 3. 文件类型 52 4. 文件属性 53 5. 文件操作 53 二、目录 54 1. 目录结构 54 2. 多级目录结构 55 3. 文件路径名 55 4. 工作目录 55 5. 目录结构的勾连 55 6. 目录项 56 三、UNIX文件系统的实现 56 1. UNIX文件系统中的主要结构 56 2. UNIX文件系统存储资源的分配和回收 58 第二节 NACHOS文件管理系统 61 第三节 NACHOS文件系统的实现 63 1. 同步磁盘分析(文件synchdisk.cc 、synchdisk.h) 63 2. 位图模块分析(文件bitmap.cc、bitmap.h) 64 3. 文件系统模块分析(文件filesys.cc、filesys.h) 64 3.1 生成方法 65 3.2 Create方法 65 3.3 Open方法 66 3.4 Remove方法 66 4. 文件头模块分析(文件filehdr.cc、filehdr.h) 66 5. 打开文件结构分析(文件openfile.cc、openfile.h) 67 5.1 ReadAt方法 67 5.2 WriteAt方法 68 6. 目录模块分析(文件directory.cc directory.h) 68 第四节 文件管理系统作业 70 第五章 用户程序和虚拟内存 71 第一节 NACHOS 对内存、寄存器以及CPU的模拟 71 1 RaiseException 方法 74 2 ReadMem 方法 74 3 WriteMem 方法 74 4 Translate方法 74 5 Run 方法 75 第二节 NACHOS用户进程运行机制 77 一、用户程序空间(文件address.cc, address.h) 77 1.1 生成方法 77 1.2 InitRegisters方法 78 1.3 SaveState方法 78 1.4 RestoreState方法 78 二、系统调用(文件exception.cc, syscall.h, start.s) 78 第三节 虚存管理的设计和实现 80 一、Nachos存储管理的改进要求 80 二、一个虚拟存储管理实现的实例 80 2.1 虚拟存储系统的总体设计 80 2.2 缺页中断陷入及其调度算法 83 2.3 虚存的存储分配 85 2.4 存储保护 85 2.5 实现中的一些细节 85 第四节 用户程序和虚拟存储作业 87 第六章 NACHOS的网络系统 88 第一节 NACHOS对物理网络的模拟 88 第二节 NACHOS的邮局协议 91 2.1 PostalDelivery方法 92 2.2 Send方法 93 第三节 网络部分作业 94
2022-03-11 20:56:42 864KB nachos 教程
1
nachos-3.4为操作系统实验或模拟开发平台,可以再此之上进行第二次开发
2022-03-02 20:41:55 34.23MB nachos-3.4
1
山东大学软件学院操作系统课程设计nachos,内含代码及实验报告
1
操作系统:基于Nachos和XV6的PKU OS课程项目和注释
2021-12-25 19:33:08 12.45MB operating-system xv6 nachos OperatingsystemC++
1