赞
踩
1、认识计算机系统(上)
1.1、计算机系统由软硬件构成
1.2、总线
1.3、I/O设备
1.4、内存
1.5、处理器
1.6、计算机硬件组成
2、认识计算机系统(下)
2.1、什么是操作系统
2.2、Linux内核模块
2.3、操作系统管理硬件(职责)
2.4、操作系统的三个基本抽象
2.5、进程
2.6、进程上下文切换(用户模式:运行用户自己写的代码。内核模式:运行操作系统本身的代码。进程A首先运行用户自己的代码,在用户模式下。当它调用了系统调用read接口去读文件的时候,就会转成内核模式去读文件,这边就做了一次上下文的切换。操作系统会去调用DMA控制器,对磁盘进行读的操作直接读取到内存当中而不需要CPU的参与,那么这时候CPU就腾出来通过CPU的调度程序调用了B进程。这样就回到了B进程中的用户模式。当磁盘读完后,会产生磁盘中断,又将用户模式切换到了内核模式,唤醒了A进程,A进程从read返回,又执行用户自己写的代码,切换回了用户模式。那么对用户来说,感觉A进程在独占CPU,因为进程间的切换时间是很短的,用户感觉不出来)
2.7、虚拟存储器(使得每个进程都好像在独占内存。进程中的内存都是虚拟内存,里面的地址都是虚拟地址,通过MMU来映射到实际的物理地址)
2.8、进程虚地址空间
2.9、文件
2.10、虚拟文件系统(VFS):对用户来说,提供了接口,屏蔽了下面的底层细节
3、系统编程介绍
3.1、系统编程与应用编程(系统编程一般是为了支撑应用编程)
3.2、系统资源
3.3、系统调用在系统中所处的位置
3.4、C库
3.5、系统调用与C库的关系
3.6、内核如何处理系统调用(先存放系统调用号,然后再存储调用参数,然后再执行指令)
3.7、系统调用的错误处理
4、文件与I/O(一)
4.1、什么是I/O
4.2、文件描述符
4.3、文件描述符与文件指针转换
4.5、文件系统调用
4.6、open系统调用
5、文件与I/O(二)
5.1、read系统调用
5.2、write系统调用
5.3、文件的随机读写
5.4、lseek系统调用
5.5、目录访问
6、文件与I/O(三)
6.1、stat函数
6.2、stat结构体
7、文件与I/O(四)
7.1、文件共享
7.2、复制文件描述符(分配文件描述符的时候,会按照顺序分配,如果中间有空的就会选择中间的,这样的话,1号描述符是标准输出,如果把1号关闭了,再复制一个当前一打开的文件描述符,那就会输出到当前打开的文件中,就实现了输出重定向)
7.3、复制文件描述符
8、文件与I/O(五)
8.1、fcntl函数
8.2、fcntl的常用操作
上面的会阻塞在read函数,除非吗输入aaaa后回车。下面设置非阻塞方式:
8.3、文件锁的结构体
9、进程
9.1、什么是进程(编译器从A切换到B,再切换回来,需要保存现场状态,也就是上下文信息。进程是对内存、CPU的一个抽象)
9.2、进程数据结构:进程控制块(PCB,progress control block)
9.3、进程与程序
10、进程(二)
10.1、进程状态变迁
中间红色是内核,下面就绪态就是可执行状态
10.2、进程控制块
10.2、进程标识
10.3、进程创建
10.4、进程撤销
10.5、终止进程的方法
11、进程(三)
11.1、复制一个进程映象fork
11.2、fork系统调用
为什么父进程为1?因为此时父子进程在交叉进程,无法判断哪个进程先结束,父进程先结束了。下面加上sleep就正常了
11.3、fork系统调用注意点
11.4写时复制copy on write
12、进程(四)
12.1、fork之后父子进程共享文件(两个进程共享文件表!)
12.2、fork与vfork
如果用vfork,那么父子进程公用同一份地址空间,并不是写时复制
12.3、exit与_exit
如果用_exit(0),没有清除内存缓冲区,这样就会残留在缓冲区,就不会输出到标准设备。如果加\n也会变成输出
缓冲区是由C库分配的,应该由C库清除,系统调用根本不知道你调用了缓冲区。
12.4、atexit
12.5、execve
父进程打印出来后,子进程就没有输出了,因为子进程被ps进程替换了。
13、进程(五)
13.1、exec替换进程映像
13.2、exec关联函数组
后面的退出主函数不会被打印,因为进程映像已经被替换了。
替换后的进程id是一样的。(这里面自己写一个hello程序,打印hello和进程id)
进程被替换失败后,就不会替换继续往下走
14、进程(六)
14.1、SIGCHLD信号
14.2、wait函数
下面这样就能保证子进程先退出,因为父进程一直阻塞在wait函数一直等待子进程结束后才结束
14.3、waitpid
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。