# UCAS-OS-MIPS
UCAS 操作系统实验课 一个简单的 MIPS64 架构操作系统
仅作思路参考,请不要直接照抄。
以下介绍各部分功能,采用迭代更新,只介绍每部分新增功能。
具体功能实现请查看各部分的【设计文档】。
## Project6-File System 部分
1. fs.c
文件位于【Project6-File System/fs】目录下
主要功能:
(1)init_fs 函数,初始化建立文件系统。
(2)read_super_block 函数,从磁盘读取文件系统。
(3)print_fs 函数,打印文件系统信息。
(4)clear_fs 函数,清除文件系统。
(5)readdir 函数,打印目录或文件信息,即 ls 命令。
(6)enterdir 函数,进入一个目录,即 cd 命令。
(7)mkdir 函数,建立一个目录。
(8)rmdir 函数,删除一个目录。
(9)mknod 函数,建立一个空文件。
(10)open 函数,打开文件。
(11)write 函数,写文件。
(12)read 函数,读文件。
(13)close 函数,关闭文件。
(14)cat 函数,打印文件。
(15)hard_link 函数,建立硬链接。
(16)soft_link 函数,建立软链接。
2. fs.h
文件位于【Project6-File System/fs】目录下
主要功能:
(1)fs相关的各种数据结构和宏定义。
3. test_bigfile.c
文件位于【Project6-File System/test/test_project6】目录下
主要功能:
(1)测试大文件,连续写和读一个大文件。
## Project5-Device Driver-part2 (C core) 部分
1. main.c
文件位于【Project5-Device Driver-part2/init】目录下
添加功能:
(1)do_init_mac 函数,初始化网卡设置。
其他功能:见【Project4】部分
2. mac.c
文件位于【Project5-Device Driver-part2/drivers】目录下
主要功能:
(1)mac_recv_desc_init 函数,初始化接收描述符。
(2)mac_send_desc_init 函数,初始化发送描述符。
(3)do_net_recv 函数,接收网络包。
(4)do_net_send 函数,发送网络包。
(5)register_irq_handler 函数,初始化网卡中断。
(6)mac_irq_handle 函数,网卡中断处理。
3. irq.c
文件位于【Project5-Device Driver-part2/kernel/irq】目录下
添加功能:
(1)识别网卡中断。
其他功能:见【Project2】部分
## Project4-Virtual Memory Management-part2 (C core) 部分
1. main.c
文件位于【Project4-Virtual Memory Management-part2/init】目录下
添加功能:
(1)init_memory 函数,初始化页表和物理页框。
(2)init_task 函数,初始化用户进程信息。
其他功能:见【Project3】部分
2. memory.c
文件位于【Project4-Virtual Memory Management-part2/mm】目录下
主要功能:
(1)init_page_table 函数,初始化页表。
(2)physical_frame_initial 函数,初始化物理页框。
(3)init_TLB 函数,初始化TLB例外处理。
(4)release_page_table 函数,回收页表和物理页框。
(5)init_user_tlb 函数,初始化进程代码段页表和TLB。
(6)do_TLB_Refill 函数,处理TLB refill例外。
(7)do_page_fault 函数,处理TLB invalid例外。
(8)do_tlb_modify 函数,处理TLB modify例外。
(9)swap 函数,处理换页。
3. entry.S
文件位于【Project4-Virtual Memory Management-part2/arch/mips/kernel】目录下
添加功能:
(1)TLBexception_handler_entry,TLB重填例外处理入口。
(2)handle_tlb ,正常例外处理入口的TLB处理函数。
其他功能:见【Project3】部分
4. tiny_libc文件夹
文件位于【Project4-Virtual Memory Management-part2/tiny_libc】目录下
主要功能:
(1)用户进程的系统调用函数。
(2)用户进程的头文件、string等库函数。
5. process_swap.c
文件位于【Project4-Virtual Memory Management-part2/test/test_project4】目录下
主要功能:
(1)换页的IO操作,完成SD读写。
6. share_mm.c
文件位于【Project4-Virtual Memory Management-part2/mm】目录下
主要功能:
(1)share_memory_initial 函数,初始化共享内存。
(2)do_shmget 函数,根据key得到一个共享内存ID。
(3)do_shmat 函数,根据共享内存ID建立共享内存映射,返回虚地址。
(4)do_shmdt 函数,根据共享内存的虚地址取消共享内存映射。
## Project3-Interactive OS and Process Management-part2 (multi core) 部分
1. main.c
文件位于【Project3-Interactive OS and Process Management-part2/init】目录下
主要功能:
(1)初始化内核栈与用户栈空间。
(2)初始化系统调用。
(3)初始化例外处理。
(4)初始化PCB数组,载入task。
(5)初始化锁和信号量。
(6)初始化屏幕。
(7)初始化从核。
(8)开中断,开始第一次进程调度。
2. sched.c
文件位于【Project3-Interactive OS and Process Management-part2/kernel/sched】目录下
添加功能:
(1)do_spawn 函数,启动一个任务。
(2)do_exit 函数,结束进程自身。
(3)do_kill 函数,杀死目标进程。
(4)do_waitpid 函数,等待目标进程结束。
(5)do_band 函数,将指定进程绑定在指定核上。
(6)free_kernel_stack、free_user_stack 函数,回收内核栈、用户栈。
(7)get_new_pcb 函数,寻找一个可用pcb。
(8)get_pcb 函数,由pid找到对应的pcb下标。
其他功能:见【Project2】部分
3. entry.S
文件位于【Project3-Interactive OS and Process Management-part2/arch/mips/kernel】目录下
添加功能:
(1)CORE_LOCK_ACQUIRE 宏定义,获取内核锁。
(2)CORE_LOCK_RELEASE 宏定义,释放内核锁。
(3)get_cpu_id 函数,获取当前运行的核的id。
其他功能:见【Project2】部分
4. smp.c
文件位于【Project3-Interactive OS and Process Management-part2/arch/mips/kernel】目录下
主要功能:
(1)init_pcb_core1 函数,给从核分配并初始化PCB和栈空间。
(2)loongson3_boot_secondary 函数,初始化从核、给Mailbox寄存器赋值。
(3)smp_bootstrap 函数,初始化从核的寄存器,开中断,开始第一次进程调度。
5. test_shell.c
文件位于【Project3-Interactive OS and Process Management-part2/test】目录下
主要功能:
(1)getchar 函数,从串口读取一个输入字符。
(2)check_add_cursor_y 函数,y光标加1,并根据y值滚动屏幕。
(3)test_shell 函数,读取、回显、解析、执行命令。
6. cond.c
文件位于【Project3-Interactive OS and Process Management-part2/ipc】目录下
主要功能:
(1)do_condition_init 函数,初始化条件变量。
(2)do_condition_wait 函数,释放锁-阻塞-获取锁。
(3)do_condition_signal 函数,唤醒一个被该条件变量阻塞的进程。
(4)do_condition_broadcast 函数,唤醒所有被该条件�
没有合适的资源?快使用搜索试试~ 我知道了~
UCAS 操作系统实验课-简单的 MIPS64 架构操作系统.zip
共953个文件
c:470个
h:302个
makefile:70个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 22 浏览量
2024-04-21
16:55:19
上传
评论
收藏 886KB ZIP 举报
温馨提示
UCAS 操作系统实验课-简单的 MIPS64 架构操作系统.zip
资源推荐
资源详情
资源评论
收起资源包目录
UCAS 操作系统实验课-简单的 MIPS64 架构操作系统.zip (953个子文件)
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
libepmon.a.bck 11KB
fs.c 54KB
mac.c 19KB
mac.c 19KB
mac.c 19KB
test_shell.c 16KB
memory.c 16KB
memory.c 16KB
memory.c 16KB
test_shell.c 15KB
sched.c 13KB
memory.c 13KB
memory.c 13KB
test_shell.c 13KB
test_shell.c 12KB
test_shell.c 12KB
sched.c 11KB
sched.c 11KB
sched.c 11KB
sched.c 11KB
sched.c 11KB
test_shell.c 11KB
sched.c 11KB
mac.c 10KB
mac.c 10KB
mac.c 10KB
mac.c 10KB
mac.c 10KB
mac.c 10KB
mac.c 10KB
test_shell.c 9KB
main.c 9KB
main.c 9KB
main.c 9KB
main.c 8KB
main.c 8KB
main.c 7KB
main.c 7KB
main.c 7KB
createimage.c 7KB
createimage.c 7KB
createimage.c 7KB
sched.c 7KB
syscall.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
printk.c 6KB
syscall.c 5KB
syscall.c 5KB
syscall.c 5KB
syscall.c 5KB
printf.c 5KB
printf.c 5KB
printf.c 5KB
syscall.c 5KB
syscall.c 5KB
createimage.c 5KB
createimage.c 5KB
createimage.c 5KB
createimage.c 5KB
createimage.c 5KB
createimage.c 5KB
createimage.c 5KB
test_mac.c 4KB
syscall.c 4KB
screen.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
test_sanguo.c 4KB
共 953 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
小码蚁.
- 粉丝: 2584
- 资源: 4344
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功