zoukankan      html  css  js  c++  java
  • 2013年6月27日星期四不加班记

    今天终于顺利赶在6点前离开公司不加班,此时在住的地方:一遍安装win7x64位系统,一遍给手机a199电池充电,一遍在这里写随笔记录今天遇到的点滴:

    1. 今天基本完成了ftp下载刻录的功能,中间遇到两个问题:程序cpu占用率100%和程序退出时卡住,这两个问题都跟自己线程操作不熟练有关;今天再次明确windows下的线程阻塞问题的解决方法,找到引起阻塞的地方然后sleep一定时间,如果线程时因为同步互斥等待资源什么的阻塞,OS会释放其cpu资源,但如果是死循环,则会一直占用CPU。今天第一次遇到此类问题,以后写线程相关程序时一定要注意。一般线程退出时要调用waitfor方法,如果此时有等待的循环,则waitfor会一直等下去,导致程序卡死;所以在耗时的循环中也要判断是否程序线程已经终止。
    2. 华为a199手机电池没电自动关机后无法再开机了真是极度郁闷,现在尝试一下在外置充电器给电池充满电后再开机试试;才发现座充上面有充电和饱和的指示灯,之前都是自己操作错误居然没确认当前是在充电;有时候静下来换换脑子效率真的会更高;
    3. 本来想给4g的电脑装win7旗舰32位+readgyfor4g的破解,没想到破解后与intel的显卡驱动有冲突导致系统不稳定经常蓝屏,无奈就只好装64位;但一开始报错"选中的磁盘具有MBR分区表,在EFI系统上,windows只能安装到GPT磁盘"; 在BIOS的startup里把UEFI/Legacy Boot设置成Legacy Only就可以了,才知道UEFI+GPT是将来要替换BIOS+GPT的;目前我们可以接触到的大部分pc依然采用上世纪遗传下来的 BIOS + MBR 组合。 BIOS,基本输入输出系统 (Basic Input-Output System),是软件与硬件之间的一个接口,可以把它看作一个翻译在中文与英语之间,虽然两者完全不同,不过可以让大家了解 BIOS 所处的位置,BIOS 通常被写入一块 ROM 芯片连接在主板上,当然也有直接写入北桥的,不过相当少见。MBR,主引导记录 (Master Boot Record),也就是我们常见的分区方法,不过管理员外的最终用户很少知道它的存在,MBR 分区的标准决定了 MBR 只支持在2TB以下 (超过 2TB 的只能管理 2TB) 的硬盘中创建4个分区表项,这时会有人在想我的电脑分区7、8个,是这样的 MBR 只支持4个分区表项。要获得更多分区,需要次级结构--扩展分区。扩展分区可以再次被分成一个或多个逻辑磁盘,也就是普通情况下的C盘以外的盘,或说第一个分区以外的部分,有些情况下 Windows 里的C盘可能会是一个逻辑分区。可能到这里大家会有些疑惑,没听过 MBR 分区格式,只知道 FAT、NTFS 。不用疑惑,它们不是同一种东西,这样比喻一下,MBR 就像是一本书的结构,目录、页码,这些东西划分出了章节,这就是 MBR 分区方法。在不同的章节又可以用不同的排版或是语言,这就是 FAT、NTFS 之类的格式。明白了吧,MBR 就是一个框架划分出了分区,在分区上又使用不同的格式 (文件系统: FAT、NTFS 之类) 储存文件。

       EFI,可扩展固件接口 (Extensible Firmware Interface),由英特尔 (Intel) 公司提出的一种替代 BIOS 的升级方案。 EFI 的位置很特殊,它不像是 BIOS 那样自己即是固件又是接口,EFI 只是一个接口,位于操作系统与平台固件之间,感觉像是公司、CEO、CEO秘书之间的关系一样,由CEO (操作系统) 下任务,CEO秘书 (EFI) 负责把任务分配下发到公司各部门经理 (平台固件),经理们又把任务下发到具体的小组 (各类硬件) 去完成。

       GPT (这个不太好译),全局唯一标识磁盘分区表 (GUID Partition Table),GUID,全局唯一标识符 (Globally Unique Identifier) 。GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。当然,你也可以在 BIOS 的PC中使用 GPT 分区,虽然 GPT 来自以 EFI 计划,但并不依赖于 EFI。GPT 相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案更加灵活。比如可以超过 MBR 分区表项4个的限制,在 GPT 规范里对分区的数量几乎是没有限制的,大家在网上可以查到的128个实际上是 Windows 系统 (支持 GPT 的 Windows) 做出的限制。 GPT 对可管理磁盘大小也超过了 MBR 的2TB (1TB = 1024GB) 而达到了 18EB (1EB = 1024TB) 。在 MBR 分区方案中操作系统的引导是通过放在磁盘最开始 (第一扇区) 里的 MBR (这里的 MBR 是指主引导记录,而不是主引导记录分区方案,两者是同名的。我的猜测是为了与 GPT 分区方案区分,使用了主引导记录引导方式的名字 MBR 来命名此种分区方案,我查不到确切的资料正明我的猜测是否正确,只能大家努力区分一下了。) 。把重要的信息 (如分区信息、目录等) 放在某个扇区里是 MBR 分区方案的方法,而 GPT 把这个信息放到了分区里,Intel的解释是这样可以更加明确更加安全。 GPT 分区为了保护自己不受 MBR 方案下磁盘管理软件的危害,在磁盘的最开始位置 (第一个扇区) 建立了一个保护分区 (Protective MBR),这种分区的类型标识为 0xEE。大小的话我没有在支持 GPT 的 Windows 上试过,现在只能肯定苹果系统 (Mac OS X) 下这个保护分区大小为 200MB,这个分区在 Window NT 磁盘管理器里名字叫做 GPT 保护分区。这个分区可以让不能识别 GPT 的磁盘管理软件把 GPT 磁盘看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。

    BIOS + MBR 不用说了,从DOS年代 (实际上更早) 就在使用它,Windows 也一样。然而到了现在出现了 EFI + GPT 的方案,EFI 的话 Windows 直到Vista都不支持,所以就扔开它不说。说说 GPT。Windows 对 GPT 的支持是这样的 (来自微软的解释) :

    1. Windows XP x64 版本只能使用 GPT 磁盘进行数据操作。但并不能把自身安装到 GPT 磁盘,也就是说它并不能从 GPT 磁盘启动。

    2. Windows XP 32 位版本只能查看 Protective MBR。EE 分区将不会被装载或公开给应用软件;

    3. Windows Server 2003 32bit Server Pack 1 以后的所有 Windows 2003 版本都能使用 GPT 分区磁盘进行数据操作。但仍然不能从 GPT 启动;

    4. Windows Vista 所有版本都能使用 GPT 分区磁盘进行数据操作;

    5. Windows 2000、Windows NT 4 或 Windows 95/98 只能查看 Protective MBR;

    6. 只有基于 Itanium 的 Windows 系统才能从 GPT 分区上启动 (EFI 最早就是使用在Itanium上的) 。

    EFI + GPT,现在个人pc里也许只有苹果在使用 EFI,当然Mac OS X也要求被安装到 GPT 分区中,如果你给它个 MBR,它理都不理你。不过苹果在把CPU换成Intel后,在 EFI 里加入了一个简化版的 BIOS,于是 Windows 可以在Intel平台的苹果电脑里使用,不过得使用 MBR,因为我们大部分会选择的 Windows 版本都不支持从 GPT 启动,恐怕不会有人要在苹果电脑上装基于 Itanium 的 Windows 系统吧?估计你也买不着碟!苹果公司提供了一种解决方案 (BootCamp) 使你的 Windows 可以在 GPT 磁盘上启动,BootCamp使用 Protective MBR 对旧系统的解释功能,在 GPT 分区中做出一个 MBR 分区。使得你的 Windows 可以在 GPT 磁盘上使用,虽然有一些磁盘使用上的限制 (你分再多的 MBR 分区,Windows 还是只能认出前4个,其中还包含了Protective MBR 和你的Mac OS所在分区,而且这样分区过程复杂,使用时也存在分区同步问题) 。

    1. 今天给门卡买了两个卡套,准备再往每个里面放一个名片,以防万一丢了被好心人捡到也知道该联系谁哈
    2. 不加班让我感觉压力小些,头脑也更清晰,做事的的效率反而更高了,以后不能为加班而加班,静下心来明确效果、提高效率才最重要。
  • 相关阅读:
    编译duilib遇到问题:Error C2371 "IDispatchEx重定义;不同的基类型"
    初尝DirectUI
    ms-onlinetest-question02
    ms-onlinetest-question3
    都是申请空间后不赋初值惹的祸..
    CString接受返回的char*字符串后成为乱码
    CL.exe @C:Users upAppDataLocalTemp mpc8fc399365e34f739eff6191a0c9acde.rsp”。存储控制块地址无效
    Visual Studio Ultimate 2012 静态激活密钥
    如何写入和获取软件的版本信息(VS环境下)
    mt.exe : general error c101008a: Failed to save the updated manifest to the file "DebugResource.dll.embed.manifest". Bpo
  • 原文地址:https://www.cnblogs.com/doit8791/p/3159852.html
Copyright © 2011-2022 走看看