#include "kernel/types.h" #include "kernel/stat.h" #include "user/user.h" int main(int argc,char* argv[]) { //sleep time if(argc < 2) { printf("error:no time\n"); printf("use: sleep \n"); } else { sleep(atoi(argv[1])); } exit(0); } 本地检测...
实现unix下面的sleep功能,单位时间的长度由XV6的内核规定,代码要放在user/sleep.c中,最终运行成功能达到下图所示的效果 #include "kernel/types.h" #include "kernel/stat.h" #include "user/user.h" #include "kernel/fs.h" int main(int argc, char *argv[]) { if(argc<2) { fprintf(2,"missing par...
方式二:创建1个管道 父子进程复用管道 #include"kernel/types.h"#include"kernel/stat.h"#include"user/user.h"intmain(intargc,char*argv[]){intp[2];pipe(p);if(fork()==0){charbuf;read(p[0],&buf,1);close(p[0]);printf("%d: received ping\n",getpid());write(p[1],"c",1);close(...
其中,~/Repository/xv6-labs-2021是我 clone 下来的xv6-labs-2021源码,并且已经 push 到了自己的 GitHub 上。启动 docker 镜像时,它会挂载到 docker 的/xv6-labs-2021目录(-v参数);在退出 docker 镜像时,也会自动删除掉本次产生的临时镜像(--rm参数),节省了磁盘空间。 2.2 sleep 实现sleep 指令。 这个任务...
1.xv6 system call interface 2.task i. primes 注意管道pipe的使用: int pipe(int p[]) Create a pipe, put read/write file descriptors in p[0] and p[1], 成功:0;失败:-1,设置errno; #include "kernel/types.h" #include "kernel/stat.h" #include "user/user.h" void myprimes(int *p){...
Lab: Xv6 and Unix utilities 系统调用函数 intfork();// Create a process, return child’s PID 这个函数的怎么运行困扰了我好一会,于是在此做个笔记。 首先看课程里提供的样例fork.c #include<unistd.h>#include<stdio.h>#include<stdlib.h>intmain(){intpid;pid=fork();printf("fork() returned %d\...
MIB 操作系统Lab: Xv6 and Unix utilities(1)boot xv6,xv6没有ps命令,但是可以输入ctrl-p可以看到进程的信息,一个是init,一个是sh.如果在终端输入ls命令,能看到输出。退出qemu:Ctrl-ax。从github中下载xv6代码。大多数都是可以直接运行的命令。
1.1 - Boot xv6 (easy) Lab 1 Xv6 and Unix utilities实验要求: https://pdos.csail.mit.edu/6.828/2020/labs/util.html 1 实验目的 切换到 xv6-labs-2020 代码的 util 分支,并利用 QEMU 模拟器启动 xv6 系统。 2 实验步骤
进入第一个任务:实现sleep功能 在user/sleep.c文件中编写代码,模拟Unix中的sleep功能,程序运行后应如图所示,注意argv[0]通常为程序名,实际参数从argv[1]开始传递。接下来是任务二:pingpong 任务要求父进程负责数据传递,子进程负责接收。运行时应达到预期的交互效果。第三个挑战是素数计算,当第一个...
Lab1 Xv6 and Unix utilities Boot xv6 (easy) 从指定仓库clone代码,然后编译-运行,尝试一部分命令,没问题之后就可以正式开始了! sleep (easy) 实验要求 实现Unix程序sleep,使程序暂定指定数量的ticks。并将解决方案放在文件user/sleep.c中。 一些提示: 参考其他代码如果获取用户输入参数,并对用户输入参数做出一定...