ZCMUCZX的博客

学习的脚步

排序:
默认
按更新时间
按访问量

简易C++词法分析程序

词法分析往往是编译程序的第一步,词法分析器会把程序代码的输入流切分为token,然后语法分析器会接受这些token,并且去把token流构建成AST(抽象语法树),一般来说,被解析成token的语言是基于上下文无关语法的,一个token可以是一个字符串,由一个或者多个同一范畴的字符组成 输...

2018-06-18 14:48:59

阅读数:12

评论数:0

I/O文件的具体操作

对于一个磁盘来说,文件系统是通过文件目录从文件名来进行映射,从而得到了文件的空间分配,比如说MS-DOS将文件名映射为一个数,这个数显示了文件访问表的一个条目,这个条目说明了哪些磁盘块被分配给文件。在UNIX当中将文件名映射为inode号,相应的inode包含了空间分配信息 从文件名到磁...

2018-06-18 10:28:15

阅读数:15

评论数:0

内核数据结构

内核需要保存I/O组件使用的状态信息,可以通过若干内核数据结构比如说文件打开表等来完成 UNIX系统中在读取一个用户文件的时候,内核需要去检查下缓存,然后再去决定是否执行磁盘I/O,在读一个进程镜像时候,内核只需要从内存当中读取数据 UNIX当中采用面向面向对象的技术采用统一结构来封装...

2018-06-18 09:57:02

阅读数:16

评论数:0

I/O内核的子系统

基本概念 内核提供了许多和I/O有关的服务。像调度、缓冲、高速缓存、假脱机、设备预留以及错误处理是由内核I/O子系统提供的并且是建立在硬件和设备驱动程序结构之上的,I/O子系统还负责保护自己免受错误进程和恶意用户的危害 下面简单的介绍下I/O的调度 其实调度I/O请求就是确定一...

2018-06-18 09:45:23

阅读数:12

评论数:0

阻塞和非阻塞I/O

下面就简单的介绍下阻塞和非阻塞I/O的区别 当应用程序发出一个阻塞系统调用的时候,应用程序的执行就会被挂起,应用程序是会从操作系统的运行队列移到等待队列上,当系统调用完成之后,应用程序就会移回到运行队列,可以继续执行并能收到系统调用返回的值 对于非阻塞的I/O,其实一个例子就是一个视频...

2018-06-17 22:32:22

阅读数:7

评论数:0

Clang的不同作用

clang编译器可以拿来作为预处理器、编译器驱动、前端以及代码生成器使用,它的输出是取决于你指定的参数的 接下来我们写下如下的代码 #include<stdio.h> int main() { printf("Hel...

2018-06-17 19:30:09

阅读数:5

评论数:0

LLVM简单介绍

LLVM全称为Lower Level Virtual Machine,最初是以C/C++为编译目标,现如今LLVM已经能够为ActionScript、D、Fortran、Haskell、Java、Objective-C、Swift、Python、Ruby、Rust、Scala等众多语言提供了...

2018-06-17 12:37:45

阅读数:17

评论数:0

时钟和定时器

目前很多系统都有硬件时钟和定时器来提供一些函数,比如说设置定时器在A时刻去猝发操作X,比如说获取当前时间,获取已经逝去的时间 测量逝去的时间和触发操作的硬件称为可编程间隔定时器(programmable interval timer)。它可被设置为等待一定的时间,然后去触发中断,它也可以设...

2018-06-16 13:33:19

阅读数:15

评论数:0

直接内存访问DMA

如果我们要在磁盘拷贝大量文件的话,我们如果用CPU来进行控制的话,这就显着有点浪费了,因为CPU还有其他很重要的事情要处理,所以很多计算机为了减去CPU的负担,就把一部分任务下放给一个专用的处理器,称为DMA控制器 我们在进行DMA传输的时候,主机向内存中写入DMA命令块,这个块当中包括传...

2018-06-16 11:22:01

阅读数:12

评论数:0

ARKit&&Vision的识别物体

简单了解下,ARKit是苹果的增强虚拟与现实的框架,是苹果在2017年WWDC推出的AR开发平台,而Vision框架是 Apple 在 WWDC 2017 推出的图像识别框架 我们下面就来做下物体识别的例子,首先从官网下载模型 下载完成之后将其导入到我们新建的工程当中 然后我...

2018-06-16 09:19:01

阅读数:58

评论数:0

概率论--点估计

首先我们来看下什么是参数估计 那么参数估计问题又是什么? 参数估计分为两大类,一类是点估计,还有一类是区间估计,点估计分为矩估计和最大似然估计,就比如说估计降雨量,预计今天的降雨量如果是550mm就是点估计,如果是500-600mm就是区间估计 点估计的主要任务就是去寻求位置参...

2018-06-15 07:47:49

阅读数:6

评论数:0

CPU轮询和中断机制

主机和控制器之间交互的完成协议可能会很复杂,我们可以用两个位来协调控制器和主机之间的生产者和消费者之间的关系,控制器工作忙的时候就把状态寄存器的忙位设置为1,而如果控制器可以接收下一条指令的时候就清除忙位。 如果是主机就是通过命令寄存器中命令就绪位来表示其意愿,当主机有命令需要控制器执行的时候就...

2018-06-14 17:50:05

阅读数:11

评论数:0

spring-boot配置thymeleaf实现html界面跳转

不得不说配置真的是烦,最近由于有个需求是上传图片到本地磁盘,然后url字段保存在数据库当中,于是乎就用了下spring-boot,下面就简单的整理下遇到的坑 首先我们需要去配置spring-boot-starter-thymeleaf的时候,如果我们用的是 Spring Boot 2.0...

2018-06-14 15:34:27

阅读数:9

评论数:0

交换空间概念

交换空间基本概述 在以前,当物理内存的数量达到来了临界低点,通常会选择最不活跃的进程从内存移到交换空间以释放内存空间,但是现在的操作系统是将交换和虚拟内存技术以及交换页给结合在一起了,这样就不必对整个进程进行交换 虚拟内存是使用磁盘空间作为内存的扩充,由于磁盘访问比内存访问要慢很多,所以...

2018-06-14 07:18:50

阅读数:8

评论数:0

I/O输入系统概述

由于I/O设备众多,而且每个不同的I/O设备的细节和特点是不同的,操作系统内核是设计成使用设备驱动程序模块的结构,设备驱动程序为I/O子系统提供了统一的设备接口 设备和计算机之间的通信其实是可以通过电缆甚至是空气来传递信息的,设备和计算机通信通过一个连接点(或端口),例如串行端口,如果一个...

2018-06-13 19:11:46

阅读数:6

评论数:0

LR分析法

LR文法是最大的、可以构造出相应的移入-归约语法分析器的文法类,其中L表示的是对输入进行从左到右的扫描,而R代表的就是反向构造出一个最右的推导序列 LR分析法就是会给出一种能根据当前分析栈中的符号串和向右顺序查看输入串中的k(k>=0)个符号就可以唯一...

2018-06-12 15:22:12

阅读数:9

评论数:0

自底向上的语法分析

自底向上分析中,分析过程的每一步都是从当前句型中选择一个可归约的子串,将它归约到某个非终结符号 实现自底向上分析最常用的技术就是移进-规约分析,边移入边分析,一旦栈顶符号串形成某个句型的句柄或其他可归约串的时候就进行归约,归约的结果就是将句柄或其他可归约串从栈顶部分给弹出,然后将相应的非...

2018-06-11 18:31:20

阅读数:17

评论数:0

LL(1)文法的递归预测分析法和非递归预测分析法

关于递归的预测分析法,可以先看下下面的示例图如果是非递归的预测分析法,预测分析器由一个输入带,读头和一个带有预测分析表的控制器构成,从下面这样的自动机的构造来看其实和有穷自动机的构造是相似的,有穷自动机就是一个状态遇到输入符号然后去改变状态,和有穷自动机不同的就是增加了一个栈也叫做下推存储器起到记...

2018-06-11 14:48:02

阅读数:35

评论数:0

磁盘中的坏块

绝大多数磁盘从工厂里出来时就有坏块。根据所使用的磁盘和控制器,对这些块有多种处理方式 对于简单的磁盘,如使用IDE控制器的磁盘,可以手动处理坏扇区。比如MS-DOS format命令执行逻辑格式化,它将扫描磁盘以查找坏扇区。如果format找到坏扇区,那么它就会在相应的FAT条目中写上特殊的值以...

2018-06-11 09:12:53

阅读数:11

评论数:0

计算机启动引导块

一般来说计算机启动的时候都需要运行一个初始化程序,这个初始化程序做的事情就是初始化系统的各个方面,从CPU寄存器到设备控制器和内存,然后启动操作系统。所以初始化程序需要找到磁盘上的操作系统内核,装入内存,并且需要转到起始地址,从而开始操作系统的执行 绝大多数操作系统只会在启动ROM(只读...

2018-06-11 08:42:56

阅读数:11

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭