操作系统35

Linux系统编程Linux系统编程笔记(12)——网络

Ⅰ. 网络结构 1.数字用户线路DSL 2.混合光纤同轴电缆HFC 3.以太网 4.移动网络 Ⅱ. 查看IP 1.命令 ...

Linux系统编程Linux系统编程笔记(11)——终端、作业、守护进程

Ⅰ. 终端 用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),fork会复制PCB中的信息,因此由Shell进程启 ...

Linux系统编程Linux系统编程笔记(10)——文件锁

在多进程对同一个文件进行读写访问时,为了保证数据的完整性,有时需要对文件进行锁定。可以通过fcntl()函数对文件进行锁定和解锁。 对于写锁(F_ WRLCK独占锁),只有一个进程可以在文件的 ...

Linux系统编程Linux系统编程笔记(9)——线程

Ⅰ. 线程的概念 有些情况需要在一个进程中同时执行多个控制流程,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同时下载多个文件,等待和处理从 ...

Linux系统编程Linux系统编程笔记(8)——信号

Ⅰ. 信号的基本概念 用户输入命令,在Shell下启动一个前台进程。用户按下Ctrl-C,这个键盘输入产生一个硬件中断。如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,C ...

Linux系统编程Linux系统编程笔记(7)——进程体系与进程管理(2)

Ⅰ. wait和waitpid函数 一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终 ...

Linux系统编程Linux系统编程笔记(6)——进程体系与进程管理(1)

Ⅰ. 进程控制块PCB task struct结构体: 进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。进程的状态,有运行、挂起、停止、僵尸等 ...

Linux系统编程Linux系统编程笔记(5)——文件与I/O(4)

Ⅰ. ext2文件系统 文件系统中存储的最小单位是块(Block),一个块究竟多大是在格式化时确定的,例如 mke2fs 的-b 选项可以设定块大小为 1024、2048 或 4096 ...

Linux系统编程Linux系统编程笔记(4)——文件与I/O(3)

Ⅰ. lseek/fcnt/ioctl/mmap 高级控制 lseek 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0, 表示文件开头,通常读写多少个字节就会将读写位置往后移 ...

Linux系统编程Linux系统编程笔记(3)——文件与I/O(2)

Ⅰ. open/close/read/write 打开/关闭/读/写 openopen函数可以打开或创建一个文件。 #include <sys/types.h> #include ...