【初探】操作系统
i丶scream
Small thing follow your head, big thing follow your heart.
展开
-
exit(),_exit(),_Exit()
关于exit(),_exit(),_Exit()author: i.sshe email: i.sshe@foxmail.com github: https://github.com/isshe综述: _exit()和_Exit()立即进入内核,exit()则先执行一些清理处理,然后返回内核. 1). exit(): 正常终止进程。所有atexit()和on_exit()注册的处理函数都会原创 2016-05-25 09:40:36 · 1867 阅读 · 0 评论 -
[APUE chapter 12] 线程控制
作者:isshe 日期:2016.10.30 邮箱:i.sshe@outlook.com github: https://github.com/isshe1.前言2. 相关概念线程分离: 就是说与创建线程分离,当新建线程运行结束,就终止线程并释放资源。默认情况下是不线程分离的,此时新线程运行结束后如果创建线程没有结束就等待创建线程结束,或者使用pthread_join()原创 2016-11-02 10:46:06 · 629 阅读 · 0 评论 -
【初探】操作系统之进程线程
日期:作者:i.sshehttps://github.com/isshe 操作系统之进程线程1. 问题列表1.1 什么是进程?什么是线程?1.2 进程的基本状态及转换?1.3 进程控制块(PCB)都包含什么内容?1.4 哪些资源是线程私有的?哪些资源是线程共享的?1.5 进程线程的区别?1.6 线程的同步机制有哪些?1.7 系统是如何将一个信号通知给进程的?原创 2016-06-02 18:45:41 · 936 阅读 · 2 评论 -
[APUE chapter 11] POSIX线程
简介线程有学习了使用,以及一些基础的知识,现在再细致地学习一下线程。因此做此记录。线程的基础概念及知识每个线程都包含表示执行环境所需的信息:线程ID一组寄存器 栈 调度优先级和策略信号屏蔽字errno变量(见AUPE 1.7节)线程私有数据(见APUE 12.6节)POSIX线程的功能测试宏是 _POSIX_THREADS,可以用#ifdef进行测试,从而编译时确定原创 2016-10-30 11:58:42 · 661 阅读 · 0 评论 -
[AUPE chapter 14] 高级IO
作者:isshe 日期:2016.10.30 邮箱:i.sshe@outlook.com github: https://github.com/isshe1. 基础知识1.1 非阻塞I/O问题a. 什么是低速系统调用?都有哪些?b. 与磁盘I/O有关的系统调用的相关描述?c. 如何指定非阻塞I/O?解答a. 低速系统调用:可能会使原创 2016-11-06 15:49:54 · 638 阅读 · 0 评论 -
[APUE chapter 13] 守护进程
作者:isshe 日期:2016.10.30 邮箱:i.sshe@outlook.com github: https://github.com/isshe1. 相关概念系统进程以赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统引导装入过程的一部分而启动。内核守护进程以无控制终端方式启动,用户层守护进程缺少控制终端可能是守护进程调用了set原创 2016-11-04 10:05:07 · 634 阅读 · 0 评论 -
C/C++程序运行时进程的内存分布情况
1.典型的内存分布情况: 2.各段相关说明: 1). 代码段[.text]: 存储机器码序列/全局常量/代码/字符串常量. 2). 初始化数据段: 初始化的全局变量/初始化的(局部/全局)静态变量. 3). 未初始化数据段[.bbs]: 未初始化的全局变量/未初始化的(局部/全局)静态变量. 4). 堆(从低地址往高低至增长): 所使用的局部变量还是在栈上,内容则在堆上.手动释放或原创 2016-05-10 21:28:47 · 1036 阅读 · 0 评论 -
【初探】判断系统位数及主机字节序
1.判断64位32位#include <stdio.h>int main(void){ printf("%d\n", sizeof(void *)): return 0;}2.判断主机字节序#include <stdio.h>typedef union TEST_U_{ short a; char b[2];}TEST;int main(void){原创 2016-05-19 10:31:56 · 673 阅读 · 0 评论 -
【初探】内存管理知多少
日期:20160614作者:i.sshehttps://github.com/isshe 【初探】内存管理知多少?1. 基础问题1.1 常见的内存管理方式有哪些?1.2 什么是虚拟内存?1.3 什么内存泄漏?如何检测?如何避免?1.4 什么是内存溢出?2. 拓展问题2.1 什么是段错误?2.2 什么是碎片?什么是外碎片?什么是内碎片?2.3 什么是ELF?2.4 如何知道系统中原创 2016-06-14 18:05:49 · 433 阅读 · 0 评论 -
【初探】进程通信与线程同步
日期:20160608作者:i.sshehttps://github.com/isshe //待补充图 //待补充代码 //待补充共享内存和消息队列的接口。进程通信与线程同步1. 基本问题1.1 进程通信的方式有哪些,哪些是比较常用的?1.2 线程同步的机制有哪些?2. 拓展问题3. 基本问题解答3.1 进程通信的方式有哪些,哪些是比较常用的?信号通信的信息只是一个信号值;信号是进原创 2016-06-09 01:45:13 · 574 阅读 · 0 评论 -
库函数和系统调用
函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。函数调用运行在用户态,系统调用运行在内核态。当库函数中没有调用系统调用(一个或多个)的时候,库函数的速度比系统调用快, 如果调用了则是系统调用快。库函数和系统调用(来自《C专家编程》) 系统调用和函数库的关系: 1).系统调用通过软中断int 0x80从用户态进入内核态。 2).函数库中的某些函数调用了系统调用。 3)原创 2016-05-17 22:33:16 · 706 阅读 · 0 评论