
操作系统基础篇
深入学操作系统
Only you, only you!
这个作者很懒,什么都没留下…
展开
-
哈工大李治军操作系统--设备驱动与文件系统
文件到磁盘块文件系统参考资料[1] 中国大学MOOC《操作系统》李治军 哈尔滨工业大学[2] 《Linux内核完全注释》赵炯[3] BIOS中断大全[4] 汇编语言最全指令表[5] 《x86汇编语言:从实模式到保护模式》李忠 著[6] https://blog.youkuaiyun.com/ccnuacmhdu/article/details/104946213...原创 2020-04-17 16:41:00 · 524 阅读 · 0 评论 -
哈工大李治军操作系统--内存管理
参考资料[1] 中国大学MOOC《操作系统》李治军 哈尔滨工业大学[2] 《Linux内核完全注释》赵炯[3] BIOS中断大全[4] 汇编语言最全指令表[5] 《x86汇编语言:从实模式到保护模式》李忠 著[6] https://blog.youkuaiyun.com/ccnuacmhdu/article/details/104946213...原创 2020-04-17 15:12:38 · 789 阅读 · 0 评论 -
哈工大李治军操作系统--进程与线程
CPU/进程管理初探操作系统是管理硬件的,CPU是最主要的硬件。本节展示了多道程序设计以及引出进程的概念。如何使用CPU呢?让程序跑起来,CPU就一直取指执行了。如何充分利用CPU呢?启动多个程序,交替执行。多道程序设计(并发)先看一个例子,下面代码让无I/O指令执行10000000次,而让I/O指令执行10000次,发现前者用时竟然比后者用时还要短!笔者使用的还是固态硬盘!显然,I/O...原创 2020-04-15 20:56:00 · 2486 阅读 · 0 评论 -
哈工大李治军操作系统--操作系统基础(系统调用)
参考资料[1] 中国大学MOOC《操作系统》李治军 哈尔滨工业大学[2] 《Linux内核完全注释》赵炯[3] BIOS中断大全[4] 汇编语言最全指令表[5] 《x86汇编语言:从实模式到保护模式》李忠 著[6] https://blog.youkuaiyun.com/ccnuacmhdu/article/details/104946213...原创 2020-04-15 20:55:32 · 840 阅读 · 0 评论 -
哈工大李治军操作系统--操作系统基础(操作系统启动)
参考资料[1] 中国大学MOOC《操作系统》李治军 哈尔滨工业大学[2] 《Linux内核完全注释》赵炯原创 2020-04-15 20:54:40 · 2137 阅读 · 3 评论 -
哈工大李治军操作系统--实验1 熟悉实验环境
哈工大李治军老师的操作系统真的是非常好,也是国内众多高校中为数极少的实实在在讲操作系统的课程,对标计算机顶尖高校斯坦福,直接使用Linux早期版本源码讲解.正如斯坦福操作系统所说"Learn OS concepts by coding them!",本课程就是要深入操作系统,彻底理解操作系统,让学生具备能够修改并扩充操作系统的能力.笔者对李治军老师由衷钦佩!笔者认为学习操作系统具备的前置知识有,...原创 2020-04-15 20:54:04 · 6538 阅读 · 1 评论 -
(操作系统实验)n道批处理系统下三种常见的作业调度算法实现
批处理作业调度算法/* 【思路】:根据当前时刻,调入适当数量的作业到内存;根据调度算法选择当前内存中最优的作业执行。 注意作业执行的时候,如果内存不满且并非所有作业都已经进入内存,在适当时候需要新作业进内存(循环)。 【明确一点】多道(2道及以上)批处理系统,采取的策略是先来的先调入内存,再判断先执行谁。 单道批处理系统而言,则是:对于当前时间点及之前已经到来的所有作业...原创 2018-09-27 19:37:05 · 10552 阅读 · 2 评论 -
(操作系统实验)内存页面淘汰算法---FIFO、LRU、OPT
算法介绍参考操作系统或计算机组成原理相关教材,很容易理解,介绍略。可以参考笔者后续实验结果,有助于理解算法。源代码由于算法简单,不再进行画图设计思路,笔者直接编写代码,遇到问题随之解决。下面是源代码文件,只有一个文件,Main.java,使用文件输入,输入文件是in.txt,注意把该输入文件和Main.java放在同一个文件夹下,再用命令行编译运行即可。import java.util....原创 2018-11-15 23:43:49 · 2987 阅读 · 2 评论 -
(操作系统实验)(内存管理、分配与回收模拟实验---可变分区方式)
简要介绍及前提假设学习操作系统存储管理这一章节后,我们都很清楚可变分区是内存管理中一种比较好的策略,是后续虚拟存储技术的基础。所以做这个模拟用可变分区的方式管理内存的实验。笔者假定可以申请的内存地址空间范围是0-6000。内存管理方法介绍本实验模拟的是用可变分区的方式管理内存的,使用两张表来管理内存,一张表是已经分配的内存块表,另一个张表是未分配的内存块表,这两张表构成了伙伴系统(因为他们都...原创 2018-11-14 22:22:04 · 9263 阅读 · 9 评论 -
(操作系统实验)结合PCB模拟进程就绪、运行、等待三种状态切换的实验
Swing组件采用Java实现,不依赖本地运行平台(较好地跨平台)。所有Swing组件采用MVC设计模式,实现显示逻辑和业务逻辑分离。Swing提供了多种外观风格(LAF,Look And Feel),还有相关Java爱好者自行设计的开源的LAF。可以看一下本地安装的Java提供的所有LAF:import javax.swing.UIManager;public class Hello{ ...原创 2018-10-15 16:12:29 · 4183 阅读 · 1 评论 -
(操作系统实验)简单模拟文件系统的基本操作
代码//思路:用户登录文件系统,然后创建、打开、读、写、关闭、删除文件import java.io.*;import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); login(); menu();...原创 2018-12-01 14:52:30 · 5813 阅读 · 0 评论 -
P、V操作经典问题
1.设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印。【解】(0)分析题意,画出草图:(1)设定三个进程:I进程:负责把卡片上的信息输入缓冲区B1P进程:负责从缓冲区B1中取到信息并加工处理,送到缓冲区B2C进程:负责从缓冲区B2中取到信息,在打印机上打印(2)假设B1缓冲区大...原创 2019-01-16 16:29:08 · 7580 阅读 · 1 评论 -
GDB入门
本文使用实验楼环境GCC编译GDB调试示例1示例2原创 2020-04-03 17:29:43 · 426 阅读 · 0 评论 -
Linux基础入门--实验16(Linux 进程管理)
实验15主要将接近了Linux进程的基本概念,跳过。top 工具的使用topps 工具的使用pstree 工具的使用kill 命令打开 vim ,然后 Ctrl+Z 转为后台进程。参考资料[1] 实验楼《Linux基础入门(新版)》[2] 《鸟哥的Linux私房菜》...原创 2020-04-03 14:30:36 · 236 阅读 · 0 评论 -
Linux基础入门--实验14(Linux 下软件安装)
介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。通常 Linux 上的软件安装主要有四种方式:在线安装/从磁盘安装 deb 软件包/从二进制软件包安装/从源代码编译安装。apt-get (在线安装、卸载和升级软件包)注意:如果你在安装一个软件之后,无法立即使用Tab键补全这个命令,你可以尝试先执行source ~/.zshrc,然后你就可以使用补全操作。sudo ...原创 2020-04-03 12:27:06 · 278 阅读 · 0 评论 -
Linux基础入门--实验13(正则表达式基础)
正则表达式和通配符区别# 若为通配符,*表示任意长度字符串,可匹配shixx/shiyan等# 若为正则表达式,*表示前面字符i出现任意次,可匹配sh/shii/shi等shi*正则表达式常用语法|:竖直分隔符表示选择,例如"boy|girl"可以匹配"boy"或者"girl"+:表示前面的字符必须出现至少一次(1 次或多次),例如,"goo+gle",可以匹配"gooogle",...原创 2020-04-03 11:15:05 · 631 阅读 · 0 评论 -
Linux基础入门--实验12(数据流重定向)
重定向初探>或>>操作分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。Linux 默认提供了三个特殊设备,用于终端的显示和输出。与管道的区别,管道默认是连接前一个命令的输出到下一个命令的输入。标准错误重定向tee永久重定向创建输出文...原创 2020-04-02 23:13:47 · 257 阅读 · 0 评论 -
Linux基础入门--实验11(简单的文本处理)
trcoljoin学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。pastepaste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,默认以Tab隔开。参考资料[1] 实验楼《Linux基础入门(新版)》[2] 《鸟哥的Linux私房菜》...原创 2020-04-02 17:05:27 · 303 阅读 · 0 评论 -
Linux基础入门--实验10(命令执行顺序控制与管道)
管道管道是什么?管道是一种通信机制,通常用于进程间的通信(也可通过 socket 进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。参考资料[1] 实验楼《Linux基础入门(新版)》[2] 《鸟哥的Linux私房菜》...原创 2020-04-02 16:25:40 · 239 阅读 · 1 评论 -
Linux基础入门--实验9(Linux任务计划crontab)
实验7(文件系统操作与磁盘管理)由于实验楼环境限制大部分无法实际操作, 跳过.实验8(Linux下的帮助命令)主要介绍了之前用过的man/help/info帮助命令( help 命令是用于显示 shell 内建命令的简要帮助信息)。type可以查看命令类型。crontab 命令用于设置周期性被执行的指令。# Example of job definition:# .-----------...原创 2020-04-02 13:55:27 · 278 阅读 · 0 评论 -
Linux基础入门--实验6(文件打包与解压缩)
Linux 上常用的压缩/解压工具,主要讲解 zip,tar 的使用。常见的压缩文件格式有 .zip,.7z, .rar,.gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,*.tar.bz2。zip压缩# -r: 递归打包包含子目录的全部内容# -o: 表示输出文件,需在其后紧跟打包输出文件名zip -r -o shiyanlou.zip /home/shiyanlou...原创 2020-04-01 23:07:50 · 303 阅读 · 0 评论 -
Linux基础入门--实验5(环境变量与文件查找)
环境变量变量准确的说应该是 Shell 变量.关于哪些变量是环境变量,可以简单地理解成在当前进程的子进程有效则为环境变量,否则不是。Shell 中运行的大部分命令都将以 Shell 的子进程的方式运行。export将一个shell本地变量提升为当前shell进程的环境变量,从而被子进程自动继承。(关闭 shell 时失效, 永久生效需要修改配置文件, 对所有用户生效可修改/etc下的配置文件...原创 2020-04-01 20:18:02 · 292 阅读 · 0 评论 -
Vim 基础入门
参考资料[1] 实验楼《Vim 基础入门》原创 2020-03-31 20:00:29 · 298 阅读 · 0 评论 -
Linux基础入门--实验4(Linux目录结构及文件基本操作)
Linux 是以树形目录结构的形式来构建整个系统的参考资料[1] 实验楼《Linux基础入门(新版)》原创 2020-03-31 15:52:24 · 325 阅读 · 0 评论 -
Linux基础入门--实验3(用户及文件权限管理)
Linux用户管理Linux 是一个可以实现多用户登录的操作系统.查看用户$ who am i# 或者$ who mom likes输出的第一列表示打开当前伪终端的用户的用户名(查看当前登录的用户名, 用 whoami); 第二列的 pts/0 中 pts 表示伪终端, 使用 [Ctrl]+[Alt]+[F1]~[F7] 进行切换的7个 /dev/tty 设备是“真终端”, 伪...原创 2020-03-31 12:02:22 · 1388 阅读 · 0 评论 -
Linux基础入门--实验1~实验2
实验1 Linux系统简介Linus Torvalds:Linux 之父,芬兰赫尔辛基大学实验2 基本概念及操作Linux桌面环境UNIX/Linux发行版上看到的图形界面实际都只是运行在Linux系统之上的一套软件, 这套软件又是通过X窗口系统实现的, X本身只是工具包及架构协议, 而xorg便是X架构规范的一个实现体, 也就是说它是实现了X协议规范的一个提供图形界面服务的服务器...原创 2020-03-30 19:08:39 · 455 阅读 · 0 评论