系统级IO:输入输出是主存与外部设备(磁盘,终端,网络)之间拷贝数据的过程 输入:从IO设备拷贝数据到主存中 输出:从主存中拷贝数据到IO设备中 10.1 unix IO 所有的IO设备都被模型化为文件,而所有的输入输出都被当做对相应的文件的读和写来执行. 打开文件: (1)应用程序通过要求内核来打开相应的文件,内核返回一个非负整数(描述符),应用程序只需记住这个描述符,而相应信息 由内核来管理. (2)unix外壳在打开一个进程时,都打开了三个文件:标准输入(描述符0),标准输出(描述符1),…
全球IP英特网 (1)每台英特网主机都运行实现TCPIP协议的软件. (2)英特网的客户端和服务器混合使用套接字接口函数和Unix IO函数来进行通信. (3)套接字函数典型的是作为陷入内核的系统调用来实现的,并调用各种内核模式的TCPIP函数. (1)主机集合被映射成为一个32位的IP地址. (2)这组IP地址被映射成为英特网域名的标识符. (3)英特网上的主机进程可以通过连接和任何其他英特网主机的进程通信. 13.3.1 IP地址 (1)IP地址是一个32位的无符号整数,网络程序将IP地址存…
网络编程: 11.1 客户端-服务器编程模型 (1)一个应用是由一个服务器进程和一个或多个客户端进程组成. (2)服务器管理某种资源,并且操纵这种资源来为客户端服务. CS模型: CS的基本操作是事务: 11.2 网络 对于主机而言,网络只是一种IO设备,作为数据源和数据接收方. 局域网(LAN): (1)从物理层次而言,最底层是局域网,目前最流行的局域网技术是以太网. (2)每个以太网适配器都有一个全球唯一标识的48位地址,它存储在这个适配器的非易失性存储器上. (3)一台主机可以发送一段位,…
在Windows系统中,创建和打开文件都是使用API函数CreateFile,CreateFile通过指定不同的参数来表示是新建一个文件,打开已经存在的文件,还是重新建立文件等.读写文件最为直接的方式是使用ReadFile和WriteFile函数,也可以使用文件镜像,获取文件大小一般使用GetFileSize函数,也可以使用GetFileAttributesEx等函数(在上节介绍).读写文件.获取文件大小之前都需要使用CreateFile创建或打开的文件,获得文件句柄.在文件操作中,文件句柄是一…
三种并行的应用程序: 1. 基于进程的并发编程: 2. 基于IO多路复用的并发: 3. 基于线程的并发编程: 12.1 基于进程的并发编程 进程的优劣: (1)进程间共享文件表,但不共享用户地址空间,拥有独立的地址空间,这样一个进程不会不小心将另一个进程的虚拟 存储器给覆盖了. (2)独立的地址空间使得进程间通信很困难,很难共享信息,需要IPC(进程间通信机制),这样开销很大. 进程间通信机制: (1)waitpid函数  (2)unix信号  (3)套接字  (4)管道  (5)FIFO  (…
[翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第三部分) . . .…
在第10章10.2.1小节中,首先分别对视图类和对话框类添加了一个名为m_nLineWidth的int型变量,再将用户在CSetting dlg对话框的edit控件中输入的线宽值记录在dlg.m_nLineWidth中,然后将dlg.m_nLineWidth赋给视图类的m_nLineWidth中,最后在CClientDC dc中用m_nLineWidth值对应的线宽画线. 跟着视频做的时候觉得很奇怪,为什么直接在视图类的成员函数中就写m_nLineWidth=dlg.m_nLineWidth了,…
Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模块.执行对应运行等级的初始化脚本.个性化设置.进入登录状态这十个步骤.怎么样?服气吧!如果觉得还不够直观,那么看一下图10.1 Linux系统启动流程吧. LVS的IPVS模块也是采用动态加载的方式 图10.1 Linux系统启动流程那关机是不是会省点事儿呢?不是!Linux的关机会涉及4个命令和4…
第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可以包含诸如图像和声音这些其他类型的文件.此外,JAR文件是压缩的,它使用了大家熟悉的ZIP压缩格式. pack200是一种较通常的ZIP压缩算法更加有效的压缩类文件的方式.Oracle声称,对类文件的压缩率接近90%. 可以使用jar工具制作JAR文件(在默认的JDK安装中,位于jdk/bin目录下…
所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程序运行环境.这种软件有个专业术语名称:内核.因为它小且位于计算机体系的核心.如下图所示: 上图中的系统调用包裹在内核的外围,隔离开内核以保护内核.同时,系统调用作为和内核沟通的中间桥梁. 公用函数库通常指的是C/C++的标准库,例如libc.glibc.libstdc++.libc++等标准库,不同…