![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大学生
文章平均质量分 93
朝小闇
个人博客:blog.kunpw.cn
欢迎各位访问!
展开
-
分布式系统笔记第二章.进程通信
个人博客:http://blog.kunpw.cn/分布式系统设计学习笔记(一)进程通信第二章.进程通信进程通信的两种方式:同一物理节点上不同进程:管道、共享内存和消息队列等实现;不同物理节点上不同进程:通信网络实现;1 同一节点上进程间通信1.1 管道单向通信信道,使用write系统调用发送数据,使用read系统调用接收数据。无名管道:简称管道,只在父子进程或同父子进程间使用,并与创建该管道的进程同时存在;管道实质是允许双向通信的,但被强制用作单向通信信道。原创 2021-03-11 00:03:28 · 711 阅读 · 0 评论 -
异常
异常是什么?从我们的代码运行机制来讲,所有事情的发生不见得都是事前有所准备的,这就和我们的生活一样,总会有各种各样的意外产生,所谓异常,在计算机底层中,也意味着这样一件事情。当我们运行一段程序代码时,如果所有指令在执行过程中都是顺着程序指令一条一条,最多只通过跳转/调用/返回这一系列可控的指令而运转,那么毫无疑问这样的运行结果是我们所期待的模样。但是程序运行时并不是独立的,它在使用CPU或者系...原创 2019-12-05 11:38:41 · 244 阅读 · 0 评论 -
实验代码之fork
关于fock实例题目,从以下第一个开始:void fork1(){ int x = 1; pid_t pid = fork(); if (pid == 0) { printf("Child has x = %d\n", ++x); } else { printf("Parent has x = %d\n", --x); } pri...原创 2019-12-05 10:50:49 · 318 阅读 · 0 评论 -
实验代码之runaway.c
本章实验是说明深度递归要占用大量内存空间,需谨慎使用。实验代码如下:/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>int recurse(int x) { int a[1<<15]; /* 4 * 2^15 = 64 KiB */ print...原创 2019-05-27 22:20:29 · 442 阅读 · 0 评论 -
实验代码之bufdemo.c
本章实验主要是将一个限制输入为4位的字符数据进行输入,如果输入数据在限制范围以内,则以正常字符输出,如果超出限制范围,则会侵占其它内存,从而报错。/* Demonstration of buffer overflow */#include <stdio.h>#include <stdlib.h>/* Implementation of library functi...原创 2019-05-27 21:43:03 · 117 阅读 · 0 评论 -
实验代码之hexify.c
本章运用strtoul函数以16进制读取输入参数,先将其转换成长整型数,再将该长整型数强制转换成字符型,即对输入参数进行数制转换并且用字符型对其表示。具体代码如下:/* Convert sequence of hex digits on command line into a string, terminated by \n */#include <stdio.h>#includ...原创 2019-05-26 23:12:06 · 125 阅读 · 0 评论 -
实验代码之fsum.c
本章实验主要是讨论单精度浮点数的精度问题。float型数据在小数部分只有23位,而其阶码部分的差值却能达到254位,所以当数据阶码差值超过25位之后要谨慎输入!具体代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256int main(int...原创 2019-05-26 22:45:51 · 184 阅读 · 0 评论 -
实验代码之locte.c
本章实验代码是访问数据区、代码区、栈区和堆区的地址以及输出其(unsigned long )类型的地址。代码区即程序编译后执行代码的部分。其中char big_array[1L<<24]、char huge_array[1L<<30]是全局变量,属于数据区内容;p1、p2、p3、p4四个指针存在于栈中,但是它们的内容都在数据区;而exit、malloc属于堆区。#inc...原创 2019-05-26 19:57:19 · 182 阅读 · 0 评论 -
实验代码之show-bytes.c
本章实验代码是为了解int、float以及指针类型的字节大小。并且通过对数值12345678与87654321的对比让大家能够了解到自己机器的大端小端存储方式。/* show-bytes - prints byte representation of data *//* $begin show-bytes */#include <stdio.h>/* $end show-byt...原创 2019-05-26 16:04:57 · 468 阅读 · 0 评论 -
实验代码之struct.c
这段实验代码主要是讲覆盖问题,有些时候一段数据划分好区域之后会因为其它原因导致其它数据的侵占,这段代码即论述此。#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; double d;}struct_t;double fun(int i){ volatile struct_t s;...原创 2019-05-26 14:50:59 · 211 阅读 · 0 评论 -
实验代码之sq.c
本章是计算机系统基础的第一个实验,主要是用来测试int型数据的范围大小。C语言中的int型数据是32位整型存储类型,只有四个字节可用,这就直接限定了其数据大小的绝对范围。由理论二进制32位大小可知,int型最大范围应不超过2的32次方,但这是建立在原码的基础之上的。而在计算机中,由于需要表示负数,故原码并不适用,所以取补码形式用于表现一个整数的正负数部分,因此大略来说它的范围应该再次折半!这个...原创 2019-05-26 14:12:27 · 344 阅读 · 0 评论 -
计算机系统基础学习报告(二)
袁老师第二周的视频主要讲解了常见的数据在机器中是如何表示以及存储的。主要讲述了定点数即整数、浮点数以及非数值数据的ASCII码值得表示方式和数据在存储时的基本存储容量以及字节排列的顺序。数制转换不多赘述。讲述定点数在数据表示时从原码、反码补码和移码几个定义上指授我们机器码为何用其来表示并且运用这些码尤其是补码的好处在于能够方便有效地表达范围内所有的数值。而移码主要运用于乘除运算中的简便运算中以...原创 2019-05-26 13:45:34 · 417 阅读 · 0 评论 -
计算机系统基础学习报告(一)
计算机系统基础学习报告(一)今晚学习计算机网课开始是很难受的。总觉得讲师从层次分明的大结构入手加以讲解编程、操作系统与指令集体系结构有一些问题。至少对于我而言还只能理解一个大的框架,而不能够去仔细理解三个层次中分别涉及到的组成结构之类的关系。不过现在一写报告我就发现之前的细节似乎有了点的着落,所以写学习报告是很有必要的。我在听课的时候在想一个问题:对于我而言应该怎样学习这些内容。刚刚我不太适...原创 2019-05-26 13:44:05 · 4559 阅读 · 0 评论