系统调用及损耗
系统调用的根本目的是保护操作系统所维护的共享资源;
系统调用
程序运行的时候,本身是没有权限访问多少系统资源的。系统资源有限,如果操作系统不进行控制,那么各个程序难免会产生冲突。线程操作系统都将可能产生冲突的系统资源保护起来,阻止程序直接访问。比如文件、网络、IO、各种设备等。
比如无论在Windows还是Linux中,程序员都不能直接去访问硬盘的某扇区上的数据,必须通过文件系统,也不能擅自修改任意文件。所有这些操作必须经过操作系统规定的方式进行。比如用fopen打开没有权限的文件就会失败。
作者:纸简书生
链接:https://www.jianshu.com/p/4b9c40e6b8ae
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
(1) 内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中。
(2) Linux使用两级保护机制:0级供内核使用,3级供用户程序使用。
https://www.cnblogs.com/feng9exe/p/8179538.html
参考:《Understanding Unix/Linux Programming: A Guide to Theory and Practice》之2.7
用户进程位于用户空间,内核进程位于系统空间,磁盘只能被内核直接访问。
在运行内核代码时,CPU工作在管理员模式,这对应于一些特殊的堆栈和内存环境,必须在系统调用时切换到这个环境中。系统调用结束后,CPU要切换到用户模式,又要将堆栈和内存环境恢复到用户模式的状态,这种内存环境的切换要耗费很多时间。
因此,系统调用所耗费的时间主要在两次环境切换上,如果用户程序中普通代码和系统调用交替出现,那么将产生很大的环境切换的开销。
---------------------
作者:jubincn
来源:CSDN
原文:https://blog.csdn.net/jubincn/article/details/6989716
版权声明:本文为博主原创文章,转载请附上博文链接!
相关文章
- 操作系统概念学习笔记 6 系统调用
- 荣耀手机鸿蒙系统如何批量删除日历日程?日历日程提醒便签
- 凌云KTV点歌系统功能简介
- DELL平板如何安装WIN10系统-磁盘分区问题
- Win7系统管理员设置了系统策略,禁止进行此安装,怎么办
- IOS中调用系统拨打电话与发送短信
- windows如何访问wsl系统下的文件
- Linux 0.11-通过 fork 看一次系统调用-26
- gateway调用后台系统时选择RFC的决定逻辑
- Atitit 嵌入式系统与pc系统的对比 目录 1. 哈佛结构和冯诺依曼结构 普林斯顿结构区1 2. 中断程序 类库调用1 3. 指令集 三大流程语句 与 运算语句 赋值语句1 4. 异
- Atitit.日志系统slf4j的使用
- 【ubuntu】linux常用的系统调用函数
- m基于Lorenz混沌自同步的混沌数字保密通信系统的FPGA实现,verilog编程实现+MATLAB混沌验证程序
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ① ( mmap 与 mmap2 系统调用 | Linux 内核中的 mmap 系统调用源码 )
- 【Linux 内核 内存管理】内存管理系统调用 ③ ( mmap 创建内存映射原理 | 分配虚拟内存页 | 物理地址与虚拟地址进行映射 | 并分配物理内存页 | mmap 库函数与内核系统调用函数 )
- 【Linux 内核】进程管理 ( 系统调用简介 | 进程相关系统调用源码 )
- Linux核心设计依据(七)系统调用
- 【并行编程】系统体系结构和组件具体说明
- 使用msi自动安装系统
- Android系统之onFirstRef自动调用原理(一百三十八)
- 【科研技巧】Mac 系统如何给Endnote 20添加某篇文献信息和附加PDF文件
- sysdig分析容器系统调用
- LINUX系统服务端口详解大全
- 【看表情包学Linux】冯诺依曼架构 | 理解操作系统 | 基于 Pintos 实现新的用户级程序的系统调用
- 企业里Win10 开启BitLocker锁定磁盘,如何备份系统,当系统出现问题又如何恢复,快速恢复又兼顾系统安全(远程设备篇)