操作系统
文章平均质量分 76
只要代码敲得好,BUG就追不到我
让世界变得更美好
https://github.com/liusenlindegithub
展开
-
进程中的“段”
进程中的段 前言: 现代计算机操作系统都采用段页式管理方式,即对每个进程分配一个虚拟的内存空间,将程序调入内存中,进行加载,bss 段:BSS 段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文 BlockStarted by Symbol的简称。BSS段属于静态内存分配。data 段:数据原创 2016-05-26 21:45:34 · 641 阅读 · 0 评论 -
进程的调度算法
抢占式 多任务 分时前面我们已经明确了调度可能发生的时机,现在我们通过这些调度时机来理清下现代操作系统中这几个重要的概念。1.多任务在单任务系统中,一个进程即使发生I/O阻塞(比如等待用户输入)时,操作系统也不会执行另一进程,整个系统都将陷入等待的空闲中。而多任务就是指当一个正在执行的进程发生I/O阻塞或等待其他资源需要暂停时,操转载 2016-08-21 16:03:07 · 1947 阅读 · 0 评论 -
计算机启动过程(转)
pull oneself up by one’s bootstraps“自举”字面意思是”拽着鞋带把自己拉起来”,这当然是不可能的事情。最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!一、第一阶段:BIOS1.1 ”只读内存”(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片,计算机通电后转载 2016-07-21 20:43:09 · 785 阅读 · 0 评论 -
进程的状态
进程三态状态装换图 就绪态只需要等待处理机(CPU)阻塞态可能在等待输入输出,即使分配给处理机也是徒劳调度进程,只需要等待就绪队列里的进程,因为阻塞状态可以转换到就绪队列里去就绪原因: 缺少cpu 阻塞原因 1.内存资源紧张2. 无就绪队列,处理机空闲3 .I/O速度比处理机速度慢的多,可能出现全部进程原创 2016-08-01 17:08:34 · 1728 阅读 · 0 评论 -
操作系统调度算法(上)
操作系统的分类:(按环境分):批处理操作系统: 又分为: 1.单通道批处理系统:如dos,用户一次可以提交多个作业,但系统一次只处理 一个作业,处理完一个作业后再调入下一个作业进行处理。这些调度、切换系 统自动完成。不需人工干预 2.多通道批处理系统:同一个原创 2016-08-01 16:03:32 · 1910 阅读 · 0 评论 -
Linux系统如何为进程分配内存
可执行程序的内存分布GNU编译器生成的目标文件默认格式为elf(executive linked file)格式,这是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干个段(section)组成,由标准c源代码生成的目标文件中包含以下段: .text(正文段)包含程序的指令代码, .data(数据段)包含固定的数据,如常量,原创 2016-07-05 13:20:56 · 5778 阅读 · 0 评论 -
操作系统分配内存
计算机体系结构和内存层次操作系统中内存的最小访问单位是 字节 ,也就是8bit。通常我们所说的计算机系统是32位的总线,所谓的32位总线就是说一次读写可以从内存当中读或者写32位(也就是4字节)。因为一次读写是32位,所以需要地址对齐,访问的时候不能从任意地方开始。在CPU中可以看到高速缓存,由于指令执行和访问数据都需要从内存里读数据,如果此时有大量数据要读写而且会原创 2016-07-05 14:01:26 · 5454 阅读 · 0 评论 -
进程调度
在多进程、多线程并发的环境里,从概念上看,有多个进程或者多个线程在同时执行,具体到单个CPU级别,实际上任何时刻只能有一个进程或者线程处于执行状态;因此OS需要决定哪个进程执行,哪些进程等待,也就是进程的调度。 一、调度的目标 1、首先要区分程序使用CPU的三种模式:IO密集型、计算密集型和平衡型。对于IO密集型程序来说,响应时间非常重要;对于CPU密集型来说,CPU的周转时间就比较重要;对于平原创 2016-07-04 15:33:07 · 3326 阅读 · 0 评论 -
进程与线程的区别与联系
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系 一个线程可以创建和撤销另一个线原创 2016-07-03 23:57:21 · 2333 阅读 · 0 评论 -
进程、程序、作业 的区别
1. 进程是程序的一次运行活动,属于一种动态的概念。 程序是一组有序的静态指令,是一种静 态 的 概 念。 但 是, 进 程 离 开 了程 序 也 就 没 有 了 存 在 的 意 义。 因 此, 我 们 可 以 这 样 说: 进 程 是 执 行 程 序 的 动 态 过 程, 而 程 序 是 进程 运 行 的 静 态 文 本。 如 果 我 们 把 一 部 动 画 片 的 电 影 拷 贝 比 拟原创 2016-07-03 23:31:37 · 13976 阅读 · 2 评论 -
Linux下的内存管理
下面举一个早期的计算机系统中,内存分配管理的例子,以便于大家理解。加入我们有三个程序,程序1,2,3.程序1运行的过程中需要10M内存,程序2运行的过程中需要100M内存,而程序3运行的过程中需要20M内存。如果系统同时需要运行程序A和B,那么早期的内存管理过程大概是这样的,将物理内存的前10M分配给A, 接下来的10M-110M分配给B。这种内存管理的方法比较直接,好了,假设我们这个时候想让原创 2016-06-06 00:15:30 · 653 阅读 · 0 评论 -
Linux下的动态库与静态库的制作
Linux下静态库和动态库的制作与使用 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib (32位机)和/usr/lib64(64计算机)。 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易原创 2016-05-27 23:10:36 · 574 阅读 · 0 评论 -
系统中的库函数与系统调用的区别与联系
Linux 下对文件操作有两种方式:系统调用(system call)库函数调用(Libraryfunctions)系统调用实际上就是指最底层的一个调用,在linux 程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因,第一:双缓冲技术的实现。第二,可移植性。第三,底层调用本身的一些原创 2016-05-27 23:02:39 · 907 阅读 · 0 评论 -
操作系统自举后做了什么???
前段时间在看清华大学出版社出版的《Linux教程》(05年6月第一版)。在248页第十三章《进程》有一节是简述Linux进程的层次关系的,把操作系统自启动后都做了什么,说得比较清晰,看过后受益匪浅。 就是喜欢看这种能把整个框架说得比较清楚的文章!特抄来以共享: 当打开Linux系统,LILO(LInux LOader)找到Linux内核把它加载到内存。它初始化各种硬件,原创 2016-08-22 20:11:55 · 2474 阅读 · 0 评论