随笔分类 - 操作系统编程
与操作系统相关的编程训练。
摘要:# 声明 本文为本人原创,未经许可严禁转载。部分图源自网络,如有侵权,联系删除。 # RISC-V 中断与异常 trap(陷阱)可以分为异常与中断。在 RISC v 下,中断有三种来源:software interrupt、timer interrupt(顾名思义,时钟中断)、external in
阅读全文
摘要:本文主要介绍多线程的相关知识。 基本概念 并发与并行 并发:虚假并行。即是多个任务的占用同一资源,CPU交替处理。某一时间段内同时执行多个任务,某一时刻只执行单个任务。由操作系统进行多任务时间分配,需要进行不同的任务切换。任务切换本身需要一定时间。(单核CPU) 并行:真实并行,某一时间段与某一时刻
阅读全文
摘要:问题描述 完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下: 思路 这道题目主要涉及文件读写操作和属性修改。需要支持文件夹复制、文件复制,在Linux下还要支持软链接的复制。 思路如下: 获取待复制目录的绝对路径 根据绝对路径进行dfs或者bfs搜索所有子目录项 判断子目录是属
阅读全文
摘要:问题描述 设计一个内存监视器,能实时地显示当前系统中内存的使用情况,包括系统地址空间的布局,物理内存的使用情况;能实时显示某个进程的虚拟地址空间布局和工作集信息等。 思路 获取系统信息 1. 2. 注意INTELx86_64体系最好用这个函数。其他的等价于 指向 的指针 3. 信息输出 注意这里的
阅读全文
摘要:问题描述 完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下: 思路 这道题目主要涉及文件读写操作和属性修改。需要支持文件夹复制、文件复制,在Linux下还要支持软链接的复制。 思路如下: 获取待复制目录的绝对路径 根据绝对路径进行dfs或者bfs搜索所有子目录项 判断子目录是属
阅读全文
摘要:问题描述 一个大小为3的缓冲区,初始为空 2个生产者随机等待一段时间,往缓冲区添加数据,若缓冲区已满,等待消费者取走数据后再添加,重复6次 3个消费者随机等待一段时间,从缓冲区读取数据,若缓冲区为空,等待生产者添加数据后再读取,重复4次 说明: 显示每次添加和读取数据的时间及缓冲区里的数据 生产者和
阅读全文
摘要:进程管理控制 这里实现的是一个自定义timer用于统计子进程运行的时间。使用方式主要是 例如要统计 的运行时间可以直接输入 ,其后的 是指所要运行的程序的参数。如: 。如果要指定程序运行多少时间,如5秒钟,可以输入 。需要注意的是,该程序对输入没有做异常检测,所以要确保程序输入正确。 Linux 程
阅读全文
摘要:操作系统环境 VMware workstation15 Pro ubuntu18.04 LTS 待编译内核5.3.10版本 Compiler: gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 内核下载地址 kernel.org 环境配置 在正式编译前需要安装部分软
阅读全文