![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OS
SakamataZ
目前担任广告引擎工程师~
展开
-
uCore OS 实验记录(一)Coding! 启动操作系统
文章目录使用git在linux搭建环境Coding!准备知识gcc扩展内联汇编make规则gdb使用启动操作系统使用git在linux搭建环境实验楼把网断了,没法pull我把实验文件都下载到了自己的库里,可以通过以下命令下载实验文件。git clone https://github.com/ztreble/uCore-OS.gitCoding!准备知识gcc扩展内联汇编使用GCC扩展内联汇编的例子如下:#define read_cr0() ({ \unsigned int __dumm原创 2020-09-26 23:16:43 · 311 阅读 · 0 评论 -
课题六 - 消息队列实现客户机通信
帮别人做的操作系统课设,一道很好的题目,功能是用消息队列实现客户机与服务器的连接。难点在于不要把.c后缀写成.cpp文章目录要求思路代码运行截图要求思路服务端:使用约定的key_t创建公共消息队列,使用两个msgrcv函数语句等待获取两个私有消息队列的id,获取之后分别发送给另外一方。因为结构必须被定义为一个类型码和一个数组,所以要注意字符串和int的转换。客户端:创建私有消息队列连接公共消息队列,创建两个线程,一个用于消息发送,一个用于消息接收。注意消息队列传参时候的指针引用和解引用。原创 2020-06-29 11:35:39 · 1690 阅读 · 2 评论 -
OS实验五 基于内核栈切换的进程切换
文章目录背景实验报告问题1问题2问题3TSS 切换本次实验的内容schedule 与 switch_to实现 switch_to背景一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。操作系统任务切换过程有两种,一种是基于TSS(任务状态段)的切换,这种切换需要使用一个长跳转指令,需要很多的mov,而且不能进行指令流水(分解成微指令),造成执行起来很慢。执行过程如下:使用TR(描述符表寄存器)找到GDT(全局描述符表)中的新tss描述符,之后使用描述符切换到新的原创 2020-06-07 15:32:17 · 738 阅读 · 0 评论