加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.cn/)- 专有云、图像技术、经验、数据治理、专属主机!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

6个热门的趋势以及5个正在降温的趋势

发布时间:2021-01-28 16:38:13 所属栏目:传媒 来源:互联网
导读:假如一个公司服务器有很多用户,你使用top命令,可以看到哪个同事在使用什么命令,做什么事情,占用了多少CPU。 9 、一个程序从开始运行到结束的完整过程(四个过程) 预处理(Pre-Processing)、编译(Compiling)、汇编(Assembling)、链接(Linking) 10、什么是堆

假如一个公司服务器有很多用户,你使用top命令,可以看到哪个同事在使用什么命令,做什么事情,占用了多少CPU。

9 、一个程序从开始运行到结束的完整过程(四个过程)

预处理(Pre-Processing)、编译(Compiling)、汇编(Assembling)、链接(Linking)

10、什么是堆,栈,内存泄漏和内存溢出?

栈由系统操作,程序员不可以操作。

所以内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存。应用程序一般使用malloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用。
 

4、系统调用与普通函数调用的区别

系统调用:

1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备

2.依赖于内核,不保证移植性

3.在用户空间和内核上下文环境间切换,开销较大

4.是操作系统的一个入口点

普通函数调用:

1.使用CALL和RET指令,调用时没有堆栈切换

2.平台移植性好

3.属于过程调用,调用开销较小

4.一个普通功能函数的调用

5、内核态,用户态的区别

内核态,操作系统在内核态运行——运行操作系统程序

用户态,应用程序只能在用户态运行——运行用户程序

当一个进程在执行用户自己的代码时处于用户运行态(用户态),此时特权级最低,为3级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态。Ring3状态不能访问Ring0的地址空间,包括代码和数据;当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态),此时特权级最高,为0级。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。

6、 bootloader、内核 、根文件的关系

启动顺序:bootloader->linux kernel->rootfile->app

Bootloader全名为启动引导程序,是第一段代码,它主要用来初始化处理器及外设,然后调用Linux内核。Linux内核在完成系统的初始化之后需要挂载某个文件系统作为根文件系统(RootFilesystem),然后加载必要的内核模块,启动应用程序。(一个嵌入式Linux系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux内核,文件系统,应用程序。)

7 、Bootloader启动的两个阶段:

Stage1:汇编语言

1)基本的硬件初始化(关闭看门狗和中断,MMU(带操作系统),CACHE。配置系统工作时钟)

2)为加载stage2准备RAM空间

3)拷贝内核映像和文件系统映像到RAM中

4)设置堆栈指针sp

5)跳到stage2的入口点

Stage2:c语言

1)初始化本阶段要使用到的硬件设备(led uart等)

2)检测系统的内存映射

3)加载内核映像和文件系统映像

4)设置内核的启动参数

嵌入式系统中广泛采用的非易失性存储器通常是Flash,而Bootloader就位于该存储器的最前端,所以系统上电或复位后执行的第一段程序便是Bootloader。

8、 linux下检查内存状态的命令

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读