系统编程
文章平均质量分 86
不落风渊
这个作者很懒,什么都没留下…
展开
-
系统编程之进程控制
程序是一段可执行的代码,是在硬盘上的一个文件,进程则是程序执行的一个实例,每个进程都有自己的地址空间。进程终止的两种情况:父进程比子进程先退出:子进程会被祖先进程接收,并且会在后台执行,当子进程结束,祖先进程负责处理退出状态。这样的进程被称为守护进程。子进程比父进程先退出:如果父进程没有处理子进程的结束状态,就会产生僵尸进程。此进程占内存很小,但是会占用一个进程ID,由于系统的进程ID是有限的,如果僵尸进程过多,系统可能无法再产生新的进程。原创 2017-08-09 19:23:06 · 215 阅读 · 0 评论 -
系统编程之进程间通信和信号量(售票系统)
进程间通信是为了数据传输、资源共享、通知事件、进程控制和信号。实现进程间通行的方式有管道、共享内存和消息队列。信号量提供了这样的一种访问机制,它可以通过生成并使用令牌来授权,让一个临界区同一时间只有一个进程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。本售票系统实现了普通用户与管理员的登录。当管理员没有登录时,普通用户不能售票,会被阻塞。当管理员登录后会初始化共享内存和信号量,各用户可以正常售票。同一次售票只能有一个管理员登录,管理员退出后,负责删除共享内存和信号量,普通用户无法售票,被强制退出原创 2017-08-12 22:35:55 · 549 阅读 · 0 评论 -
系统编程之文件系统编程
系统调用:所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。不同操作系统提供了自己的一套系统调用,所以系统调用无法实现跨平台使用。而且频繁地系统调用,在用户态和内核态之间切换,很耗费资源,效率不高。C标准库提供了操作文件的标准I/O函数库,与系统调用相比,主要差别是实现了一个跨平台的用户态缓冲的解决方案。缓冲区可以减少系统调用的次数,提高运行效率。C标准库是系统调用的封装,在内部区分了操作系统,可实现跨平台使用。原创 2017-08-06 19:48:01 · 922 阅读 · 0 评论 -
系统编程之网络编程(TCP客户端与服务器的搭建)
TCP是重要的传输层协议,是一种有连接的、可靠的传输。传输数据前要先建立连接,如果传输错误或者数据丢失,就会重传。因此使用TCP,开销大,速度慢。UDP也是传输层协议,它是无连接的、不可靠的传输服务。不必要在数据传输之前建立会话,但可能造成数据的丢失。系统只保证尽力发送。优点是传输速度快、开销小。视频点播使用的就是UDP。下面是我实现的TCP客户端与服务器的搭建:原创 2017-08-16 17:57:33 · 399 阅读 · 0 评论