OS/Compilers
文章平均质量分 62
琳小白
这个作者很懒,什么都没留下…
展开
-
进程调度
简单轮转法。其基本思想是:所有就绪进程按 FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 #include <stdio.h>#define getpch(type) (type*)malloc(sizeof(type))//#define N原创 2015-11-02 19:30:49 · 871 阅读 · 0 评论 -
在flex&bison的基础上利用符号表进行语义分析
/**Name:gramtree_v1.h*Author:WangLin*Created on:2015-10-03*Version 2.0*Function:定义语法树&变量符号表&函数符号表&数组符号表&结构体符号表*//*来自于词法分析器*/extern int yylineno;//行号extern char* yytext;//词void yyerror(char *s原创 2015-11-28 17:37:44 · 11429 阅读 · 21 评论 -
编译原理——中间代码生成
源语言->中间代码->目标语言 中间代码(Intermediate Representation或者IR):复杂性介于源程序语言和机器语言的一种表示形式。 编译程序锁使用的中间代码有多种形式。常见的有逆波兰记号,三元式,四元式,和树形表示。四元式是一种普遍采用的中间代码形式,很类似于三地址指令,有时把这类中间表示称为“三地址代码”,这种表示可以看作是一种虚拟三地址机的通用汇编码,每条”指令“包原创 2016-03-28 22:37:22 · 36268 阅读 · 3 评论 -
Linux文件系统新增1--用户管理
第一部分 预备知识strtok函数原型:char *strtok(char *s, char *delim); 功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换,直到找遍整个字符串。 返回指向下一个标记串。当没有标记串原创 2015-12-10 12:21:24 · 1130 阅读 · 0 评论 -
Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收
Linux文件系统代码学习笔记1–磁盘格式化&block分配igetput.cpp——内存inode的创建与回收iget——内存inode的创建1. hash表的作用hash队列用来存放内存inode。 但是为什么要弄成队列的样子呢?方便查找?inode编号是唯一的,一个hash表128个队列,假设内存有256个inode 举个栗子,假设要找第129个inode: inode编号->hash原创 2015-12-09 12:21:42 · 1491 阅读 · 0 评论 -
Linux文件系统代码学习笔记--磁盘格式化&block分配
第一部分——准备知识磁盘格式化这一步骤到底做了什么? 为了读懂代码,首先先掌握几个知识点。memcpy函数void * __cdecl memcpy(_Out_writes_bytes_all_(_Size) void * _Dst, _In_reads_bytes_(_Size) const void * _Src, _In_ size_t _Size);void *memcpy(void *原创 2015-12-06 10:17:41 · 2783 阅读 · 0 评论 -
动态分区-首次适应&最佳适应
编写并调试一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。对分区的分配算法可以是下面三种算法之一:首次适应算法循环首次适应算法 最佳适应算法 1,在内存分配时,系统优先使用空闲区低端的空间 10240+102380=112640 从地址112460开始分配,由低端向高端增长。 例如:分配给作业1,作业长度20,==》起始地址:112620,长度20,标志1。 每次分配原创 2015-11-05 11:32:47 · 4149 阅读 · 0 评论 -
页面调度-FIFO
1. 原理 图1:请求页式存储管理模拟程序的完整流程图 图2:一条指令执行的模拟流程图 图3:模拟地址转换的流程图 图4:采用FIFO页面置换算法的缺页中断流程图2.C++ code// Page_V1.cpp : 定义控制台应用程序的入口点。/**Name:Page_V1.cpp*Author:WangLin*Created On:2015/11/16*Function原创 2015-11-16 21:50:23 · 1199 阅读 · 0 评论 -
模拟进程通信
1,实验要求 2次调用fork创建2个子进程,其中一个充当服务器server,另一个充当客户端client,来模拟操作系统内部进程间的通信。 客户端向服务器消息类型mtype为10到1的消息,服务端接收消息,收到类型为1的消息时则停止接收。 2,进程间通信的主要函数:/*函数1功能:创建消息队列参数:MSGKEY是一个由用户提供的整数,用来标志这个资源的实例;0777|IPC_CREAT创原创 2015-10-28 20:37:04 · 1051 阅读 · 0 评论 -
fork和lockf应用
**实验三 fork和lockf应用** 实验目的 进一步认识并发执行的实质;分析进程争用资源的现象 实验过程 一,将每个进程输出一个字符改为每个进程输出一句话。/*shiyan1_test2.c*Created on 2015-10-07*Author:Wanglin*output a sentence*/# include<stdio.h># include<unistd.h原创 2015-10-13 21:15:27 · 6707 阅读 · 6 评论 -
flex&bison编写语法分析器
问题总结这次实验碰到了许多问题,前后花了好几天的时间,做完后感觉收获颇多。问题1:字符串指针的内存分配char* p1="Linwhite";char* p2;p2=p1;p1初始化时分配了内存空间,p2=p1将p2指向p1指向的内存空间,即p1和p2指向同一内存。 yytext是一个字符指针,它的值是当前扫描到的词。词法分析开始时,yytext指向一块内存(缓冲区)的首原创 2015-11-26 00:47:16 · 36501 阅读 · 21 评论