【Android】linux

android系统就是跑在linux上的系统。Linux层里面包含系统和硬件驱动等一些本地代码的环境。
在这里插入图片描述
linux的目录
在这里插入图片描述

  1. mount:
    用于查看哪个模块输入只读,一般显示为:
[root@localhost ~]# mount
/dev/cciss/c0d0p2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d0p7 on /home type ext3 (rw)
/dev/cciss/c0d0p6 on /var type ext3 (rw)
/dev/cciss/c0d0p3 on /usr type ext3 (rw)
/dev/cciss/c0d0p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/dm-0 on /home/book/upload/BookFile1 type ext3 (rw)
/dev/dm-1 on /home/book/upload/BookFile2 type ext3 (rw)
/dev/dm-2 on /backup type ext3 (rw)
/dev/dm-3 on /home/book/upload/BookFile3 type ext3 (ro)

如果发现有ro,就重新mount,或者umount以后再remount

  1. umount /dev/dm-3
    如果发现有提示“device is busy”,找到是什么进程使得他busy
    fuser -m /mnt/data 将会显示使用这个模块的pid
    fuser -mk /mnt/data 将会直接kill那个pid
    然后重新mount即可。还有一种方法是直接remount,
    mount -o rw,remount /mnt/data

  2. 如何查看cpu占用状态?
    要查看CPU占用状态,可以使用以下命令:

  • top命令:在终端输入“top”命令,可以查看当前系统的进程信息和CPU占用情况。可以按“q”键退出。

  • htop命令:htop是top的升级版,可以在终端输入“htop”命令来查看CPU占用状态和进程信息。可以按“q”键退出。

  • ps命令:在终端输入“ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head”命令,可以查看当前运行的进程中CPU占用率最高的前几个进程。

  • mpstat命令:在终端输入“mpstat -P ALL”命令,可以查看每个CPU核心的使用情况。

  • sar命令:在终端输入“sar -u”命令,可以查看系统整体CPU使用率情况,也可以使用“sar -P ALL”查看每个CPU核心的使用情况。

注意:以上命令需要在终端中执行。在Android设备上,可以使用adb shell命令进入设备终端执行相应的命令。

  1. linux内核的启动过程
    在这里插入图片描述在这里插入图片描述有些设备需要解锁system分区
    在调试过程中,需要单独的替换某一个分区,可以通过 update 工具来替换,可以替换
    的分区有 bootloader,logo,recovery ,system,vendor 等

  2. Linux查看命令行历史命令记录(默认1000条命令历史操作记录)
    history
    history -w history.txt

Cache

Cache是集成在CPU内部的极高速缓存。一般来讲,它的访问速度几乎可以媲美CPU。CPU在访问Cache的时候几乎不会浪费多少时间,不过,速度的提升是用容量为代价的,容量很小。

为什么需要Cache ?当CPU访问内存的时候,并不是立刻就能访问到它想访问的内存,而是有个“WaitState”的过程。那么,把常用的数据放在Cache中,CPU在访问的时候直接访问Cache就行了,不用耗费时间去访问内存了。

在读内存的时候,CPU先读Cache,看看有没有想要的数据的“副本”,有的话直接读取,没有的话在去读内存。写内存时,CPU先将数据写在Cache中,Cache写满后更新到内存中,同时清空Cache。

RAM

RAM(Random Access Memory)随机存储器。内容可按需随意存取,且存取的速度与存储单元的位置无关,掉电丢数据。

按照存储信息的不同,分为静态堆积存储器(Static RAM,SRAM)和动态随机存储器(Danamic RAM,DRAM)。

SRAM 不需要刷新电路既能保存数据;DRAM每隔一段时间,需要刷新充电一次,否则内部的数据会消失。

SRAM具有较高性能,但是集成度低,既相同容量的DRAM内存可设计成较小的体积,而SRAM却需要很大的体积,且功耗较高。

SRAM速度非常快,是目前读写最快的存储设备了,而且不需要刷新。缺点是价格比较贵,所以只在要求很苛刻的地方使用,比如CPU的一级缓存,二级缓存。
DRAM保留数据的时间很短,速度也比SRAM慢,不过还是比任何的ROM都要快,价格上比SRAM便宜很多,计算机内存就是DRAM的。

ROM

ROM(Read-Only Memory)只读存储器,是一种只能读出事先存储的数据的固态半导体存储器 ,掉电不丢数据。ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是:PROM是一次性的,也就是软件烧录后,就无法修改了,这是早期产品了,现在已经不可能使用了;而EPROM是通过紫外线的照射擦除原先的程序,是一种通用的存储器。
还有一种EEPROM是通过电子擦除,价格很高,写入时间很长。手机软件一般放在EEPROM中。

Flash

闪存,是一种长寿命的非易失性(在断电情况下不丢数据)的存储器,数据删除不是以单个字节为单位而是以固定的区块为单位(注意:NOR Flash为字节存储),区块一般为256K到20MB。

Flash主要有两种:NOR Flash 和 NAND Flash。

任务Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除操作。NAND Flash擦除十分简单,而NOR Flash则要求在进行擦除前要将目标块内所有的位都写1。

core,host,device

  1. 线程池的实现步骤
    线程池是一种常见的多线程并发处理模型,它可以有效地管理和控制多线程的执行,提高系统的性能和稳定性。线程池的实现步骤通常包括以下几个方面:
    创建线程池对象:线程池通常由一个线程池对象来管理,可以通过调用线程池类的构造函数来创建线程池对象。
    初始化线程池参数:在创建线程池对象之后,需要设置线程池的各项参数,包括线程池中线程的数量、任务队列的容量、线程池中线程的命名前缀、拒绝策略等。
    创建任务队列:任务队列用来存储待执行的任务,可以采用阻塞队列或非阻塞队列的方式实现。
    创建工作线程:在线程池初始化完成后,需要创建指定数量的工作线程,并将它们添加到线程池中。
    执行任务:当有任务提交到线程池时,线程池会将任务添加到任务队列中,等待工作线程来执行。
    执行拒绝策略:当任务队列已满且线程池中的所有线程都处于忙碌状态时,新提交的任务将无法被执行,这时就需要采取拒绝策略来处理。
    关闭线程池:当线程池不再需要使用时,需要将线程池中的所有工作线程停止,并释放线程池占用的资源。
    总的来说,线程池的实现步骤可以根据具体的应用场景和需求进行灵活调整,以达到最优的效果和性能。

  2. 有哪些线程同步的方法
    在多线程编程中,为了避免竞态条件和死锁等问题,通常需要使用线程同步方法来协调不同线程之间的操作。常见的线程同步方法包括:
    锁机制:包括互斥锁(Mutex)、读写锁(Reader-Writer Lock)、自旋锁(Spinlock)等,用于保证临界区代码的互斥执行,从而避免竞态条件。
    条件变量(Condition Variable):用于线程之间的通信和协调,例如等待某个事件的发生、唤醒等待的线程等。
    信号量(Semaphore):用于限制并发访问某个资源的线程数目,避免资源竞争。
    屏障(Barrier):用于控制多个线程在某个点上的同步,例如所有线程必须在该点执行完成后才能继续执行。
    原子操作(Atomic Operation):一些特殊的操作,例如比较交换、自增等,可以保证在并发环境下的原子性,从而避免竞态条件。
    读写锁(Reader-Writer Lock):一种特殊的锁,用于优化读操作与写操作的竞争,可以提高并发性能
    需要根据具体场景和需求选择合适的线程同步方法,避免出现竞态条件和死锁等问题,提高多线程程序的稳定性和性能。

  3. 什么是C++中的智能指针,shard_ptr是线程安全的吗,为什么不保证线程安全
    C++中的智能指针是一种用于自动管理内存的指针,可以防止内存泄漏和野指针的问题。智能指针是一个类对象,它封装了一个原始指针,并在析构时自动释放所持有的内存。 C++标准库提供了两种智能指针:std::unique_ptr和std::shared_ptr。
    std::shared_ptr是一种智能指针,可以在多个地方共享同一块内存,通过计数器来跟踪内存块的引用次数。当最后一个引用被销毁时,计数器将变为零,内存块将被释放。由于使用引用计数,因此std::shared_ptr是线程安全的。
    但是需要注意的是,即使std::shared_ptr是线程安全的,也并不保证使用它的代码是线程安全的。例如,如果多个线程访问相同的std::shared_ptr对象,但没有使用任何同步机制来保护这些访问,那么就可能会出现数据竞争和不一致的状态。因此,尽管std::shared_ptr本身是线程安全的,但使用它时需要注意线程安全问题。

  4. 运行一个.exe程序的详细流程可以分为以下步骤:

加载程序文件:操作系统将程序文件从磁盘中加载到内存中,创建一个进程并分配空间给程序。

解析导入表:程序中包含了很多函数调用,这些函数可能是由其他程序提供的。操作系统需要解析这些函数的入口地址,将这些入口地址填入程序的导入表中。

分配内存空间:程序在运行时需要使用内存空间,操作系统需要分配内存空间给程序,并将分配的地址返回给程序。

初始化程序:操作系统会执行程序的初始化代码,包括对全局变量和静态变量进行初始化。

执行程序:操作系统从程序的入口地址开始执行程序。

加载依赖的动态链接库:程序中可能依赖其他的动态链接库,操作系统需要加载这些动态链接库。

进程结束:程序执行完毕或者异常终止后,操作系统会释放程序占用的内存空间,并将进程退出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/385336.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

真诚推荐3款超实用工具,强大好用到停不下来

Screen Studio Screen Studio是一款专为macOS设计的屏幕录制和视频编辑软件,具有多种功能和特点,使其成为内容创作者、教育工作者和专业人士的重要工具。它不仅支持屏幕录制,还支持摄像头和麦克风录制,可以创建精美的视频&#xf…

C# 植物大战僵尸

Winform 版本开发 高效率、流畅植物大战僵尸 git地址:冯腾飞/植物大战僵尸

UE4-构建光照后导入的静态网格体变黑

当我们将我们的静态网格体导入到项目当中的时候,此时我们进行重新构建光照,我们在从新构建完光照后,会发现我们的静态网格体全部变黑了,此时是因为没有设置光照贴图分辨率和坐标索引引起的。 将General Settings中的L…

websocket通信问题排查思路

websocket通信问题排查思路 一、websocket连接成功,但数据完全推不过来。 通过抓包发现,是回包时间太长超过了1分钟导致的。这种通常是推送数据的线程有问题导致的。 正常抓包的情况如下: 二、大量数据可以正常推送成功,不定时…

240728pycharm使用问题之无法找到指定命令

文章目录 1.问题描述2.分析3.解决后界面展示 1.问题描述 pycharm中断报错,让你初始化powershell,并且说找不到anconda中指定命令,很明显anaconda环境配置不对 2.分析 1.检查anaconda环境变量配置是否ok; 2.检查pycharm终端配置是否ok 3.检查pyacharm环境配置 3.解决后界面展…

《Single-Stage Extensive Semantic Fusion for multi-modal sarcasm detection》

系列论文研读目录 文章目录 系列论文研读目录文章题目含义ABSTRACTKeywords1. Introduction2. Related work3. Method3.1. Multi-modal projection 多模态投影3.2. Extensive Semantic Fusion Multiway Transformer 可拓语义融合多路Transformer3.3. Multi-objective optimizat…

WordPress文章标题定制化前缀插件

引言 在当今互联网的海洋中,吸引读者眼球的第一步往往始于文章标题的设计。对于WordPress博主而言,如何让每篇文章的标题更加个性化和吸引人,成为了一项重要的任务。传统的自定义CSS方法虽然可行,但其繁琐的操作和有限的美学效果…

【计算机网络】TCP负载均衡实验

一:实验目的 1:了解TCP负载均衡的配置。 2:学会使用NAT技术处理和外部网络的连接。 二:实验仪器设备及软件 硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为:二层交换机1…

【保姆级教程】LSS(3):跑通LSS模型,训练,测试

一、准备代码 https://github.com/nv-tlabs/lift-splat-shoot 二、准备数据 1 登录nuscenes官网 2 安装依赖库 pip install nuscenes-devkit tensorboardX efficientnet_pytorch==0.7.0三、准备预训练权重 需要上google网盘下载, https://drive.google.com/file/d/18fy-…

鸿蒙HarmonyOS开发:多种内置弹窗及自定义弹窗的详细使用指南

文章目录 一、消息提示框(showToast)1、导入模块2、语法3、参数4、示例5、效果 二、对话框(showDialog)1、导入模块2、语法3、参数4、示例5、效果 三、警告弹窗(AlertDialog)1、语法2、参数3、AlertDialogP…

paraFoam 运行 报错 usr/lib/x86_64-linux-gnu/libQt5Core.so 已解决

在日常项目开发中。使用ubuntu 视图开发的时候。报错 缺少 libQt5Core 核心组件! whereis libQt5Core.so.5sudo strip --remove-section.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 完美解决,并且能正常打开,前提是&#xff0c…

编译之舞:C/C++ 与 GCC 的协作曲

文章目录 一、C/C 编译过程的四个阶段1. 编译之舞的台前幕后2. 舞台布景的准备——预处理3. 舞者的基本训练——编译4. 编舞师的细节调整——汇编5. 合奏的和谐统一——链接 二、舞姿的动作细——编译详细模式三、幕后——GCC 的各种选项(Overall Option&#xff09…

Unity UGUI 之 事件接口

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是事件接口&…

使用两台虚拟机分别部署前端和后端项目

使用两台虚拟机分别部署前端和后端项目 1 部署方案2 准备两台虚拟机,并配置网络环境3 部署后端项目3.1 打包服务3.2 上传jar包到服务器3.3 集成Systemd3.3.1 移动端服务集成Systemd3.3.2 后台管理系统集成Systemd 4 配置域名映射5 部署前端项目5.1 移动端5.1.1 打包…

享元模式(结构型)

目录 一、前言 二、享元模式 三、总结 一、前言 享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少大量细粒度对象的内存占用。它通过共享尽可能多的相同数据来节约内存空间。 享元模式由以下角色组成: Flyweight&…

推荐系统三十六式学习笔记:工程篇.常见架构25|Netflix个性化推荐架构

目录 架构的重要性经典架构1.数据流2.在线层3.离线层4.近线层 简化架构总结 你是否曾经觉得算法就是推荐系统的全部,即便不是全部,至少也是嫡长子,然而实际上,工程实现才是推荐系统的骨架。如果没有好的软件实现,算法不…

达梦数据库激活

SSH登录 192.168.0.148 账号:root 密码:xxx 1.上传 dm.key 文件到安装目录 /bin 目录下 cd /home/dmdba/dmdbms/bin rz -E dm.key2.修改 dm.key 文件权限 chown -R dmdba.dinstall dm.key3.打开数据库工具,新建查询,输入 cd /…

亚信安慧AntDB-M负载均衡

负载均衡是分布式系统中常用的技术,主要是将工作任务均衡分布到系统的各个资源点上,可以充分利用系统资源。 AntDB-M分布式内存数据库节点角色可以分为管理节点(MN)、计算节点(CN)和数据节点(DN)三种。管理节点收到客户端连接请求后,会经由负…

视觉巡线小车(STM32+OpenMV)——总结

文章目录 目录 文章目录 前言 一、效果展示 二、完整流程 1、STM32CubeMX配置 2、Keil编辑 3、硬件接线 4、参数调试 5、图像处理调试 三、总结 前言 基于前面的系列文章,已基本介绍完了基于STM32OpenMV的视觉巡线小车,本文将以小编自己的小车…

Visual Studio Code + vue快速安装配置Node.js+Vue+webpack+vscode

第一部分:Node.js 第一步:下载Node.js 方法1:链接 下载 | Node.js 中文网 (nodejs.cn) 方法2:百度网盘 链接:https://pan.baidu.com/s/1zIqu8H9rb_I1i-1OWD7swQ?pwdaurk 提取码:aurk --来自百度网盘…