
学习笔记
文章平均质量分 77
安菲拉尔
这个作者很懒,什么都没留下…
展开
-
UNIX网络编程卷一 笔记 第五章 TCP客户/服务器程序示例
1 概述本章主要实现的程序模型:2 TCP回射服务器程序服务器与客户程序约定一个固定的端口,要比5000大,比49152小。fork后子进程第一件事就是关掉listenfd,父进程的第一件事是关掉connfd。在等待客户的read调用返回出错后,如果是因为被信号打断,要重新调用read。3 正常启动监听套接字处于LISTEN状态。原创 2013-06-18 23:05:53 · 1276 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第一章 简介
在设计网络应用时,确定总是由客户发起请求往往能简化协议和程序本身。许多公司也构建自己的广域网,这些私有的广域网既可以连接到因特网上,也可以不连接到因特网。TCP是一个没有记录边界的字节流协议,如果数据量很大,就不能确保一次read能返回服务器的整个应答,因此从TCP套接字读取数据时,总是需要把read编写在某个循环中,当read返回0或负值时终止。如果应用程序需要确定记原创 2013-06-06 10:26:21 · 853 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 读写锁和记录上锁
第4章 读写锁和记录上锁4.1 读写锁读写锁用于读取数据比修改数据更频繁的场景,它的分配规则如下:1. 没有线程持有写锁时,任意多的线程可以持有读锁。2. 仅当没有线程持有读锁或写锁时,才能分配写锁。当已有线程持有读锁时,另一线程申请写锁则会阻塞,若后续还有读锁的申请,此时有两种策略:1. 对后续的读锁请求都通过,可能会造成因读锁不断被分配,写锁申请始终阻塞原创 2013-08-06 11:56:20 · 1250 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix信号量
第5章 Posix信号量5.1 概述Posix信号量分为两种:1. 有名信号量:使用Posix IPC名字标识。2. 内存信号量:存放在共享内存区中。Posix信号量不必在内核中维护(System V信号量由内核维护),由可能为路径名的名字来标识。5.2 基本操作三种基本操作:1. 创建(create):指定初始值。2. 等待(wait):如果原创 2013-08-06 11:58:10 · 1531 阅读 · 0 评论 -
校招季——操作系统的概念
2013/08/12,秋季校招准备工作第二天。1 什么是操作系统操作系统是一种运行在内核态的软件,它执行两个基本独立的任务:为应用程序提供一个资源集的清晰抽象,并管理这些硬件资源。作为扩展机器的操作系统,任务是隐藏硬件的复杂特性,呈现给程序良好、清晰、优雅、一致的抽象。作为资源管理者的操作系统,任务是在相互竞争的程序之间有序地控制对处理器、存储器及其他I/O接口设备的分配。原创 2013-08-13 19:04:28 · 1058 阅读 · 0 评论 -
校招季——进程与线程的概念
2013/08/15,第四天。昨天总结完了《现代操作系统》的前几章,后面的部分看了一遍,实在不想记笔记了,太杂了。 第2章 进程与线程2.1 进程2.1.1进程模型一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量的当前值。理解进程的另一个角度是,用某种方法把相关的资源集中在一起。进程有存放程序正文和数据以及其它资源的地址空间,包括打开的文件、子进程原创 2013-08-15 09:40:33 · 1366 阅读 · 0 评论 -
校招季——Python笔记一
2013/08/15,第四天。开始学习《Python基础教程》一. 基础知识1. '/'执行普通除法,'//'执行整除,'%'执行求余,后两个也能用于浮点数,满足规律:p = q * t + r,其中p和t是被除数和除数,q和r是整除的商和余数。>>> 1/20.5>>> 1//20>>> -1//2-1>>> -1%2原创 2013-08-15 11:19:19 · 1010 阅读 · 0 评论 -
校招季——Python笔记二
二. 列表和元组1. 有六种内建序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。2. 列表可以修改,元组不可以。一般可用列表代替元组,除了用作字典的键。列表用[]标识。3. 通用的序列操作包括:索引、分片、加、乘、包含某序列。4. 序列的正序号从0开始向右,负序号从-1开始向左。原创 2013-08-28 15:21:04 · 723 阅读 · 0 评论 -
校招季——Python笔记三
三. 字符串1. 字符串是不可变的。2. format类似于C语言printf中使用的格式化控制符,用法是fmt % tuple,只有元组和字典可以格式化多个值,序列只能格式化一个值。>>> fmt = "hello, %s, %s enough for ya? %d:%f">>> values = ("world", "hot原创 2013-08-29 21:43:17 · 839 阅读 · 0 评论 -
校招季——Python笔记四
四. 字典1. 字典是由键值对组成的,键和值间用冒号隔开,项之间用逗号隔开,整个字典由大括号表示。2. 字典可以用dict创建,需要一个映射关系的参数(其他字典或包含多个元组的序列),也可以用关键字参数来创建字典。>>> dict1 = {'age':42, 'name':'Sam', 'city':'New York'}>>> dic原创 2013-08-31 09:58:33 · 720 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix共享内存区
第6章 Posix共享内存区6.1 共享内存区共享内存区是可用IPC形式中最快的,只有映射和解除映射需要进入内核的系统调用,映射后对共享内存区的访问和修改不再需要系统调用(内核只要负责好页表映射和处理页面故障即可),但通常需要同步手段。一个客户-服务器间传递文件数据的例子中,FIFO或消息队列等IPC方式需要4次内核-进程间的数据复制,每次都需要切换地址空间,开销很大;共享内原创 2013-08-09 11:02:08 · 1070 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 互斥锁和条件变量
第3章 互斥锁和条件变量3.1 概述 默认情况下互斥锁和条件变量用于线程间同步,若将它们放在共享内存区,也能用于进程间同步。 对一个公共对象的访问若不能原子进行,就需要某种形式的同步。3.2 互斥锁 静态分配的互斥锁变量可以用常值PTHREAD_MUTEX_INITIALIZER初始化,动态分配和用于共享内存的互斥锁变量要用pthread_mutex_i原创 2013-08-04 10:39:39 · 1640 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix消息队列
第2章 Posix消息队列2.1 概述每个消息都是一个有优先级的记录,进程写入消息前,不需要有其它进程在等待消息。消息队列具有随内核的持续性。Posix消息队列与System V消息队列的两个主要区别:1. Posix读返回最高优先级的最早消息,System V返回指定优先级的最早消息。2. 向空队列放置一个消息时,Posix可以产生一个信号或启动一个线程。原创 2013-08-03 15:16:43 · 1167 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第7章 套接字选项
1 getsockopt和setsockopt函数套接字选项粗分为两大基本类型:一是启用或禁止某个特性的二元选项,二是取得并返回特定值的选项,参数都是以指针形式传入的。2 套接字状态下面的套接字选项是从监听套接字继承来的:SO_DEBUF、SO_DONTROUTE、SO_KEEPALIVE、SO_LINGER、SO_OOBINLINE、SO_RCVBUF、SO_RCVL原创 2013-07-12 17:07:01 · 907 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第六章 第6章 I/O复用
1 概述同时监视多个I/O条件,在其中任意一个就绪时通知进程,这样的能力称为I/O复用,由select和poll函数支持,较新的还有Posix中的pselect函数。(Linux中还多出了epoll)应用场合:1. 同时处理多个描述符时,必须用。2. 同时处理多个套接字时,比较少见。3. 既要处理监听套接字,又要处理已连接套接字。4.原创 2013-06-22 15:00:26 · 1136 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第四章 基本TCP套接字编程
1 socket函数int socket(int family, int type, intprotocol);其中family是协议族,type是套接字类型,protocol为某个协议组合,设为0的话是取family和type组合的系统默认值。常用的family值有:AF_INET(IPV4)、AF_INET6(IPV6)。常用的type值有:SOCK_STREA原创 2013-06-18 23:06:57 · 1217 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第三章 套接字编程简介
套接字编程简介1 套接字地址结构每个协议族定义的套接字地址结构均以sockaddr_开头。常用的几种套接字地址结构:1. IPV4:sockaddr_in。2. IPV6:sockaddr_in6。3. Unix域套接字:sockaddr_un。4. 数据链路:sockaddr_dl。为了能让不同的地址结构使用同一套处理函数,规定原创 2013-06-12 20:10:54 · 982 阅读 · 0 评论 -
UNIX网络编程卷一 笔记 第二章 传输层
传输层:TCP、UDP和SCTP1 概述UDP是一个简单的、不可靠的数据报协议,TCP是一个复杂、可靠的字节流协议。SCTP也是个可靠的传输协议,但它还提供消息边界等服务。2 UDP、TCP、SCTP应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,它又被封装到一个IP数据报,然后发送。UDP不保证数据报是否到达、先原创 2013-06-12 19:22:48 · 1046 阅读 · 0 评论 -
C++中继承方式与访问标号的学习笔记
C++中继承方式与访问标号的学习笔记1 无虚函数的情况基类有一个public函数,一个protected函数,一个private函数:class A {public: voidf() { cout<<"A::f"<<endl; g(); h(); }protected: void g() {cout<原创 2012-11-08 10:20:30 · 6248 阅读 · 0 评论 -
C语言中常用计时方法总结
C语言中常用计时方法总结1. time()头文件:time.h 函数原型:time_t time(time_t * timer) 功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的此时此刻所经过的秒数。用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。用di原创 2012-10-25 09:46:04 · 99808 阅读 · 10 评论 -
C语言中常用文件读写命令总结
fopen函数原型:FILE * fopen(const char * path,const char * mode);mode有下列几种形态字符串:r 以只读方式打开文件,该文件必须存在。r+ 以可读写方式打开文件,该文件必须存在。rw+ 读写打开一个文本文件,允许读和写。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。原创 2012-10-19 10:25:40 · 2965 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 管道和FIFO
第1章 管道和FIFO1.1 pipeint pipe(intfd[2]); 创建一个单向、半双工管道,其中fd[0]用于读,fd[1]用于写。1.2 fork管道很少在单个进程内使用,一般用在两个有亲缘关系的进程间,父进程在pipe后fork,然后和子进程或子进程的后裔利用这个管道通信。pipe(fd);if ((pid =fork()) == 0){原创 2013-08-01 10:48:25 · 1861 阅读 · 0 评论 -
校招季——操作系统的存储管理
第3章 存储管理现在的存储器体系为分层存储器体系,操作系统的工作是将这个存储体系抽象为一个有用的模型并进行管理。3.1 无存储器抽象每个程序都直接访问物理内存。这种情况下,想在内存中同时运行两个程序是不可能的。这种系统中实现并行的一种方法是使用多线程来编程。运行多道程序的方法是操作系统将当前内存中内容保存到磁盘上,再读入下个程序,保证同时只有一个进程在运行。也可以在特殊硬件的原创 2013-09-03 20:47:18 · 1726 阅读 · 0 评论