
操作系统
文章平均质量分 77
《操作系统导论》 操作系统原理
SEAN JIN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈工大操作系统实验(二)系统调用实现
目录实验背景1. 描述符表2. 特权级2. 中断过程3. 系统调用过程实验目的实验内容实验报告实验背景1. 描述符表2. 特权级处理器的段保护机制可以识别4个特权级 R0~R3,数值越大特权越小。环中心为核心态,最外层为用户态。处理器利用特权级防止运行在较低特权级的程序或人物访问具有较高特权级的一个段。为了在各个代码段和数据段之间进行特权级检测处理,处理器可以识别以下三种类型的特权级:当前特权级 CPL(Current Privilege Level):CPL 存放在 CS 和 SS 段寄原创 2020-10-01 01:08:24 · 3908 阅读 · 4 评论 -
哈工大操作系统实验(一)操作系统启动
实模式实模式 是80286及以上的微处理器采用8086的工作模式,从加电启动或复位到操作系统运行之前的运行环境。保护模式 是80386及以上的微处理器的主要工作模式,支持多任务、设置特权级、特权指令执行等,操作系统和应用程序的运行环境。因为操作系统启动处于实模式,所以以下仅涉及实模式下的寄存器和物理地址生成。① 指令指针寄存器 IP 保存一个内存地址,指向当前需要取出的指令② 段寄存器与其它寄存器联合生成存储器地址,包括代码段寄存器 CS、数据段寄存器 DS、附加段寄存器 ES 和堆栈段寄存器 S原创 2020-09-12 20:48:50 · 4687 阅读 · 0 评论 -
《操作系统导论》实验七:模拟地址转换(段式)
1.作业包:segmentation.py2.作业说明:通过程序 segmentation.pysegmentation.pysegmentation.py,我们能够观察到段式系统的地址转。原创 2020-06-11 18:39:59 · 1002 阅读 · 0 评论 -
《操作系统导论》实验六:模拟地址转换(寄存器)
1.作业包:relocation.py2.作业说明:通过程序 relocation.pyrelocation.pyrelocation.py,我们能够观察到地址转换与基地址寄存器、界地址寄存器的关系。命令行参数解释如下:−h-h−h: 查看帮助信息以及退出−s-s−s: 随即因子−a-a−a: 逻辑地址空间大小−p-p−p: 物理地址空间大小−n-n−n: 逻辑地址个数−b-b−b: 基地址寄存器的值−l-l−l: 界地址寄存器的值−c-c−c:计算进程调度执行情况逻辑地址空间布原创 2020-06-09 18:16:49 · 994 阅读 · 0 评论 -
《操作系统导论》实验五:模拟彩票调度算法
1.作业包:lottery.py2.作业说明:通过程序 lottery.pylottery.pylottery.py,我们能够观察到彩票调度算法执行进程的情况。命令行参数解释如下:−h-h−h: 查看帮助信息以及推出−s-s−s: 随机数生成器的种子−j-j−j: 系统中的进程数量−l-l−l: 使用进程列表,进程间用逗号隔开,不使用随机生成的进程−m-m−m:进程执行时间的最大长度−T-T−T:彩票的最大数量−q-q−q: 就绪队列的时间片长度−c-c−c:计算进程调度执行情况原创 2020-05-18 21:19:33 · 1264 阅读 · 0 评论 -
《操作系统导论》实验四:模拟多级反馈队列调度
1.作业包:mlfq.py2.作业说明:通过程序 mlfq.pymlfq.pymlfq.py,我们能够观察到多级反馈队列调度算法执行进程的情况。命令行参数解释如下:−h-h−h: 查看帮助信息以及推出−s-s−s: 随机数生成器的种子−n-n−n: 进程就绪队列数量−q-q−q: 就绪队列的时间片长度−Q-Q−Q:时间片长度列表,时间片以逗号分隔,从左到右代表的队列优先级逐级降低−j-j−j: 系统中的进程数量−l-l−l: 使用进程列表,进程间用逗号隔开,不使用随机生成的进程−m-原创 2020-05-17 18:19:41 · 1568 阅读 · 1 评论 -
《操作系统导论》实验三:模拟进程调度算法
1.作业包:scheduler.py2.作业说明:通过程序 scheduler.pyscheduler.pyscheduler.py,我们能够观察到不同进程调度算法执行情况,譬如响应时间、周转时间和总等待时间。命令行参数解释如下:−h-h−h: 查看帮助信息以及推出−s-s−s: 随机数生成器的种子−j-j−j: 系统中的进程数量−l-l−l: 使用进程列表,进程间用逗号隔开,不使用随机生成的进程−m-m−m:进程执行时间的最大长度−p-p−p:进程调度算法,包括SJFSJFSJF, F原创 2020-05-16 18:05:50 · 1353 阅读 · 0 评论 -
《操作系统导论》实验二:进程API的使用
(1) 写个程序调用 fork()。调用 fork() 之前,主程序使用并设置变量x的值。子程序中x的值是多少?同时在父程序和子程序中修改x的值会发生什么?// p1.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/wait.h>int main() { int x = 0; printf("father x is %d\n", x);原创 2020-05-16 15:57:04 · 1584 阅读 · 1 评论 -
《操作系统导论》实验一:模拟进程状态转换
模拟进程状态转换1.作业包:process-run.py2.作业说明:3.作业要求:(1)Run process-run.py with the following flags:-l5:100,5:100.参数 -l PROCESS_LIST:逗号分隔的进程列表,形式是X1:Y1,X2:Y2,...,其中X代表进程指令数,Y(0~100)代表运行指令还是声明I/O请求该命令运行进程0...原创 2020-03-05 19:37:07 · 3557 阅读 · 2 评论 -
《操作系统导论》学习笔记(十一):I/O管理(持久化)
目录块高速缓存提前读取块高速缓存程序执行的时间局部性:在内存中为磁盘块设置一个块告诉缓冲区,保存磁盘中某些块的副本。访问内存块时,先查询块高速缓存,再查询磁盘提前读取程序执行的空间局部性:每次访问磁盘,多读取一些磁盘块...原创 2020-08-30 15:25:14 · 441 阅读 · 0 评论 -
《操作系统导论》学习笔记(十):文件系统(持久化)
文件系统1. 文件和文件系统文件:具有符号名,由字节序列构成的数据项集合普通文件:包含用户的信息,一般为 ASCII 或二进制文件。目录文件:管理文件系统的系统文件。特殊文件:字符设备文件(I/O设备)、块设备文件(磁盘)。文件系统:操作系统中管理持久性数据的子系统,提供数据存储和访问功能2. 逻辑结构逻辑结构 是从用户观点看到的文件组织形式。流式文件 :文件是有逻辑意义、 无结构的一串字符的集合记录式文件 :文件由若干个记录组成,可以按记录进行读、写、查找等操作。记录式文件的组原创 2020-08-24 17:21:30 · 1820 阅读 · 0 评论 -
《操作系统导论》学习笔记(九):死锁及通信
死锁资源类型:R1,R2,...,RmR_1, R_2, ..., R_mR1,R2,...,Rm,每类资源 RiR_iRi 有 WiW_iWi 个实例进程访问资源:请求(申请空闲资源)、使用(占用资源)、释放(资源状态由占用变空闲)死锁:由于竞争资源或者通信关系,两个或更多线程在执行中出现永远相互等待只能由其他进程引发的事件。必要条件:互斥:任一时刻只能有一个进程使用一个资源实例请求并保持:进程保持至少一个资源时,并请求其他进程持有的资源非抢占:资源只能等待进程使用完自愿释原创 2020-08-20 01:30:26 · 727 阅读 · 0 评论 -
《操作系统导论》学习笔记(八):同步互斥
概念:原创 2020-08-16 00:04:51 · 622 阅读 · 0 评论 -
《操作系统导论》学习笔记(七):内存虚拟化 (机制及策略)
内存虚拟化策略局部页面置换局部页面置换:置换页面的选择范围仅限于当前进程占用的物理页面内。最佳置换算法(OPT)最佳置换算法(OPT)置换在未来最长时间不访问的页面,从而保证获得理想状态的最低缺页率。因为无法预知进程页面的访问情况,所以该算法无法实现,但可用于评价其他算法的性能。先进先出算法(FIFO)先进先出算法(FIFO)置换驻留内存时间最长的页面。维护一个记录内存所有页面的链表,链表元素按驻留内存时间降序排列,缺页时置换链首页面,访问页面时加入链尾。最近最久未使用算法(LRU)最近最原创 2020-07-08 20:36:49 · 1356 阅读 · 1 评论 -
《操作系统导论》学习笔记(六):逻辑地址空间管理
目录逻辑地址空间管理 — 段式(segmentation)1. 段地址空间2.逻辑地址结构2. 硬件支持3. 物理地址生成逻辑地址生成1. 栈(stack)2. 堆(heap)3. 静态区、常量区、代码区逻辑地址空间管理 — 页式(paging)1.页地址空间2. 逻辑地址结构3. 硬件支持4. 物理地址生成逻辑地址空间管理 — 段式(segmentation)逻辑地址空间管理根据内存分区的大小、是否固定、对程序员是否透明可分为 段式存储管理(segmentation) 和 页式存储管理(paging)原创 2020-05-31 23:35:21 · 6082 阅读 · 0 评论 -
《操作系统导论》学习笔记(五):物理地址空间管理
目录抽象:地址空间(The Abstraction:Address Spaces)调度指标批处理系统调度算法1. 先来先服务(First Come First Served, FCFS)2.短作业优先(Short Job First, SJF)3.最短剩余时间优先(Shortest Remaining Time Next, SRTN)4. 最高响应比优先(Highest Response Ratio Next, HRRN)交互式系统调度算法1. 时间片轮转(Round Robin, RR)2. 最高优先级调原创 2020-05-20 22:38:14 · 968 阅读 · 0 评论 -
《操作系统导论》学习笔记(四):CPU虚拟化(策略)
CPU虚拟化包括微观和宏观两个方面,微观层面是实现进程切换的机制(mechanismmechanismmechanism),宏观层面是进程调度的策略(policypolicypolicy)。调度策略相关概念1.进程优先级静态优先级:进程创建时确定,运行过程中不再改变。动态优先级:进程创建时指定优先级,运行过程中可以动态变化。2.进程就绪队列组织内存中开辟多个就绪队列,队列的优先级从上至下依次降低,CPU按照队列的优先级调度运行进程,当前队列无进程时,CPU才会调度次优先级队列内进程。3.抢占原创 2020-05-13 18:24:40 · 1434 阅读 · 0 评论 -
《操作系统导论》学习笔记(三):CPU虚拟化(机制)
CPU虚拟化是通过时分复用将cpu时间划分为固定大小的时间片,每个进程在CPU运行一个时间片,时间片一到便切换运行到下一程序。其中涉及到微观和宏观两个方面,微观层面是实现进程切换的机制(mechanism),宏观层面是进程调度的策略(policy)。机制前面进程的指令都是直接运行在CPU上的,但进程运行过程难免向操作系统请求I/O等系统资源,有时又需要操作系统切换进程,这些都需要到内核空间进行...原创 2020-03-14 19:56:50 · 1694 阅读 · 0 评论 -
《操作系统导论》学习笔记(二):CPU虚拟化(进程)
CPU虚拟化是通过分时(time sharing)将cpu时间划分为固定大小的时间片,每个程序在CPU运行一个时间片,时间片一到便切换运行到下一程序。进程程序:指令和数据的集合,一般作为目标文件保存在磁盘中。进程:程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。可执行程序位于磁盘中,需要将静态程序加载到内存生成动态的进程,CPU才可以不停地取指执行。程序在硬盘中主...原创 2020-03-03 21:16:44 · 1986 阅读 · 1 评论 -
《操作系统导论》学习笔记(一):操作系统概览
#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include <assert.h>#include "common.h"intmain(int argc, char *argv[]){ if (argc != 2) { fprintf(stderr,...原创 2020-02-29 21:06:31 · 2515 阅读 · 7 评论