计算机系统
从心开始woo
SJTU
展开
-
UNIX环境高级编程 第三章
终于进入正题了,本章介绍的文件I/O是不带缓冲的I/O函数,不是ISO C的组成部分,直接对应于系统调用(因为是POSIX.1和SUS的组成部分)open / openat二者的函数原型为#include <fcntl.h> //需要的oflag常量宏定义int open(const char *path, int oflag, ...)int openat(int fd, const char *path, int oflag, ...)//fd是相对路径名在文件系统的在开始地址,原创 2020-08-29 21:54:09 · 147 阅读 · 0 评论 -
UNIX环境高级编程 第二章
UNIX标准化这一节介绍了三个重要的标准ISO CPOSIXSUSISO C由于C语言在UNIX系统中的地位不言而喻,C语言的标准化也是UNIX标准化的重要组成部分。ISO C标准当中包括了语法和语义标准库时间线:1989(发布)-1999(更新)-2001 2004 2007 (勘误)-2011(更新)IEEE POSIXPOSIX(Portable Operating System Interface,可移植操作系统接口)指的是IEEE 1003的各种标准,这里只关注原创 2020-08-13 17:04:10 · 142 阅读 · 0 评论 -
清华大学-操作系统实验-Lab2-读练习1代码(练习23暂时放弃)
实验目的理解基于段页式内存地址的转换机制理解页表的建立和使用方法理解物理内存的管理方法实验内容本次实验包含三个部分。首先了解如何发现系统中的物理内存;然后了解如何建立对物理内存的初步管理,即了解连续物理内存管理;最后了解页表相关的操作,即如何建立页表来实现虚拟内存到物理内存之间的映射,对段页式内存管理机制有一个比较全面的了解。本实验里面实现的内存管理还是非常基本的,并没有涉及到对实际机器的优化,比如针对 cache 的优化等。如果大家有余力,尝试完成扩展练习。读代码boot/bootasm原创 2020-08-12 17:52:37 · 651 阅读 · 0 评论 -
清华大学-操作系统实验-Lab1
练习1列出本实验各练习中对应的OS原理的知识点,并说明本实验中的实现部分如何对应和体现了原理中的基本概念和关键知识点。在此练习中,大家需要通过静态分析代码来了解:操作系统镜像文件ucore.img是如何一步一步生成的?(需要比较详细地解释Makefile中每一条相关命令和命令参数的含义,以及说明命令导致的结果)编译 kmonitor.c panic.c clock.c console.c intr.c picirq.c trap.c编译 trapentry.s vectors.s p原创 2020-08-12 17:50:02 · 2605 阅读 · 0 评论 -
UNIX环境高级编程 第一章 习题
2分析图1-6的程序,说明ID位852 853的 进程发生了什么情况图1.6的程序是printf("hello world from the process ID %Id\n",(long) getpid());执行后打印出来的进程号是851 854.但是明明是连续执行的,为什么PID不连续呢?其实不复杂,就是UNIX在851创建之后到854创建之前又创建了两个进程罢了。3顺便复习一下指针常量(const在*的后边)和常量指针(指向常量的指针,const在 * 的左边)指针常量:指针原创 2020-08-12 17:38:48 · 150 阅读 · 0 评论 -
深入理解计算机系统 第二章 重点梗概
信息的表示关于位,数据类型,无符号和有符号编码及其转换 这部分比较基础,不在此赘述,实践中会加深理解。这里再加深一下补码编码的定义的印象B2Tw(x)=−xw−1∗2w−1+∑i=0w−2xi2iB2T_w(x)=-x_{w-1}*2^{w-1}+\sum_{i=0}^{w-2}x_i2^i B2Tw(x)=−xw−1∗2w−1+i=0∑w−2xi2i信息的处理1. 整数加法(减法就是有符号数的加法)无符号加法较为简单,溢出模2w2^w2w就可以了。有符号加法比较复杂−2w−1<原创 2020-07-19 13:57:45 · 146 阅读 · 0 评论 -
深入理解计算机系统 第一章 内容梗概
一个简单的Hello程序1. 生成可执行文件图中所列的预处理器->链接器都是可执行程序,在shell(进程A)中执行预处理器就会读取文本文件hello.c到内存,产生一个进程B,CPU按照指令执行加载存储操作跳转等功能输出hello.i文件到内存,再调用I/O写入磁盘。进程B退出。其他程序也相似,最终在磁盘中生成可执行程序hello。2. 执行hello程序进程A:shell程序会等待用户的输入,输入./hello的过程就是shell通过键盘I/O读取内容到寄存器并同步放到内原创 2020-07-18 13:26:24 · 143 阅读 · 0 评论