- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 计算机系统要素 project1
各种门的实现前提条件给出一个已经实现的门Nand,通过这个门来构造其他的门。Nand门 输入:a,b 输出:out 功能描述 If a=b=1 then out = 0 else out =1 and门取非Not门 输入:in 输出:out 功能描述:If in=0 then out=1 else out = 0 Not门的实现使用两个nand门来实现一个not门 Na
2015-05-08 15:46:42
424
原创 unix网络编程3 多进程web服务器的实现
Introduction本节使用的读写函数使用了上一节封装以后的读写函数,具体实现可以看看上一章。首先必须清楚客户端和服务端通过TCP是如何交互的。 下图说的很清楚,客户服务端被动打开监听,accept函数一直阻塞到客户到达。客户端使用connect向服务端发送请求,建立3路握手后之后就可以发消息了。 多进程并发服务器模型如下图客户端通过connect函数和服务器建立连接listenfd是调用
2015-04-17 10:59:49
623
原创 unix网络编程2 读写函数介绍
Inroduction这一节首先介绍必要的基础知识,比如网络字节序和主机字节序,套接字地址结构,然后详细叙述各个套接字api,最后给出一个线程安全的读写函数,读写函数非常重要,其中还会写一个带缓冲的读函数,用于处理文本行,减少上下文切换。基本函数介绍ipv4套接字介绍(这里没把套接字结构里面所有内容写出来)#include<netinet/in.h>struct sockaddr{
2015-04-09 17:31:15
442
原创 unix网络编程1 基础知识
Introduction通过学习unix网络编程,在不使用任何库只使用api的情况下实现一个内置lua解释器的web服务器,实现简单的业务逻辑,比如通过cgi模式在web浏览器中显示图片,播放视频,可以在不重启服务器的情况下更新业务逻辑。主要是学习unix网络编程做的笔记,其中将插入网络编程 的基础知识,会有多进程版,I/O复用,多线程版本,每个web 服务器的吞吐量,并发连接数我都会有测试
2015-04-05 18:39:44
518
原创 unix 高级环境
进程进程终止正常终止 从main返回调用exit()最后一个线程从启动例程返回最后一个线程调用pthread_exit()异常终止 调用absort接到一个信号并终止C语言的存储空间布局正文段.cpu执行的机器指令部分.正文段通常是可共享的,但是在存储器只有一个副本.正文段常常是只读的.初始化数据段.包含明确地赋初值的变量.例如出现在c程序函数之外的声明 int max = 1
2015-03-28 14:34:55
276
转载 CS专业入门教程
转知乎 作者:@萧井陌, @Badger启蒙完成Codecademy 的 Python 部分。这只是热身部分,尽快完成它,因为你永远只是在浏览器里,你不会学到如何搭建开发环境。在 Codecademy 这类的编程学习网站学到的那点儿东西,哪怕你只想做一个小的不能再小的项目,你都不知道该从哪儿开始。完成 MIT 计算机导论课(如果你英语不过关:麻省理工学院公开课:计算机科学及编程导论)。MOOC
2015-03-22 23:08:48
1473
原创 csapp读书笔记 chapter 3 程序的机器级表示
Introduction这一章主要讲解汇编语言,从汇编语言的角度看待代过程调用的执行我觉得这个对于后面学习操作系统很重要,最后讲了讲数据对齐。prequistionIntel x86处理器 运行在台式电脑,笔记本电脑,服务器指令集分为CISC,RISCintel x86处理器历史8086 第一个16位intel处理器,地址空间1M[1978]386 32位处理器,叫IA32,加入平坦寻址(
2015-03-17 23:17:17
474
原创 文章标题
CS专业书籍推荐Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann, 1998.C++ Concurrency in Action. Anthony Williams,2012.Operating Systems: Principles and Practice. Thomas Ande
2015-03-01 14:50:54
316
原创 strive for your dreams
我想我是该好好学习了,在过去的半年里我才逐渐意识到,虽然已经是大三下学期了,但是我想只要人努力就一定能来的及。我是一个二本学校的学生,成绩也算是规规矩矩,寝室同学也不错,但是本专业一开始就比较抵触导致我浪费了很多时间,后来觉得干一行还是爱一行认真起来吧。追逐我的梦想。 写这篇文是看到下面一段话很受启发你上大学去了一个不满意的地方,找工作去了一个不满意的环境,找老婆找了一个不满意的人….这些都不是
2015-02-28 16:02:21
664
原创 J2EE环境搭建指南
方案一jdk+Eclipse IDE for Java EE Developers + tomcat. 由于解压eclipse出错我选择了第二种,但是这种方案很省资源myeclipse可是有1.9G运行也挺吃内存的,所以如果没遇到我这种情况建议选第一种.方案二myeclipse+tomcat.下载地址myeclipse下载地址eclipse下载地址tomcat下载地址jdk下载地址
2015-02-27 22:36:42
479
1
原创 CS学习计划及参考书
一下三门课程需要认真仔细学习1. 数据结构2. 操作系统3. 体系结构学习操作系统的目的,不是让你去发明自己操作系统内核,打败 Linux;也不是成为内核开发人员;而是理解操作系统为用户态进程提供了怎样的运行环境,作为程序员应该如何才能充分利用好这个环境,哪些做法是有益的,哪些是做无用功,哪些则是帮倒忙。学习计算机体系结构的目的,不是让你去设计自己的 CPU(新的 ISA 或微架构),打败 In
2015-02-26 00:00:08
646
原创 数据结构队列及栈的实现
数据结构队列及栈的实现数据结构队列及栈的实现一 链表二 队列1 创建2 插入3 删除4 实现三 栈1 结构2 创建3 插入4 删除5 实现一. 链表链表和数组对比各有各的特点,链表插入删除快,而数组查找快。插入和删除的时间复杂度都是O(n).注意到下面链表的定义是一种recursive type 递归定义. 很多数据结构都是这样定义的.struct list{ elm
2015-02-22 18:17:35
382
转载 C/C++开源项目
值得推荐的C/C++框架和库1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http://home.tiscali.c
2015-02-19 15:26:47
734
转载 普林斯顿大学学习氛围
知乎转载,如有侵权告知删除整体气氛我最喜欢普林的一点就是虽然所有的学生生活和做事都非常的driven,但并没有所谓的必须去“融入”的“主流”。学术上无论你是个码农,还是醉心理论物理,还是喜欢研究拉丁经典,还是专注于creative writing,还是研究东亚历史,还是斯拉夫文学,在校园里和别的学生谈起你所学的东西的时候,别人都会真心觉得很cool,甚至会想听你继续讲细节。而校园日常上无论
2015-01-29 20:14:42
998
原创 数据结构-Vector实现(C++)
#includeusing namespace std;template class Vector{public: //构造函数,初始化数组 Vector(int initSize = 0):theSize(initSize),theCapacity(initSize+SPARE_CAPACITY){ objects = new
2015-01-08 18:11:14
469
原创 linux中who的实现
编写who命令通过解答一下3个问题来解决1who命令能做什么?2who命令是如何工作的?3如何编写who?1who命令能做些什么?只要输入who命令,输出如下fantasy@fantasy-HP-ProBook-4436s:~$whofantasy tty2 2014-07-15 16:38fantasy tty1 2014-07-1
2014-08-13 23:49:33
750
原创 linux网络编程_1 管道的创建和使用
管道由pipe函数创建,只能提供单向的数据传送#includeintpipe(int fd[2])此函数参数fd为两个文件描述符:fd[0],fd[1],一个用来读,一个用来写。管道是由单个进程创建的,但是只在单个进程内使用的情况很少,一般是用来提供父子进程间的通信的。首先一个进程创建一个管道,然后派生出一个自身的拷贝;接着,父进程关闭此管道的读出端,而子进程关闭管道的写入
2014-08-13 23:43:52
554
原创 命令解释器Sh的编写
MDR-XB920/B 命令解释器Sh的编写 摘要:通过编写一个sh解释器,我们需要了解shell是如何运行一个程序的,以及如何能够连续的执行程序的。通过研究我们得出以下结论:shell通过fork创建进程,用exec在进程中运行用户指定的程序,最后shell用wait等待新进程的结束。这样一个简单的sh解释器就做成了。1 研究背景
2014-07-30 00:11:50
2070
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人