查看: 6632| 回复: 24
跳转到指定楼层
上一主题 下一主题
收起左侧

Udacity/ud923/Intro to Operating System

全局:
公开课

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
学习纪录

评分

参与人数 2大米 +8 收起 理由
clpwwh02 + 3 给你点个赞!
debuger + 5 给你点个赞!

查看全部评分


上一篇:Baruch Advanced C++11/14 网课值不值得上呢?
下一篇:有一起学AWS Architect Associate的小伙伴吗?
推荐
 楼主| yclu 2019-2-7 22:49:57 | 只看该作者
全局:
L20 / Datacenter Technologies
  • multi-tier architectures for internet services
    • homogeneous architecture: each node can do any processing step, so that it keeps the front-end simple

    • heterogeneous architecture: different nodes/tasks/requests/data don't uniformly be accessed



  • cloud computing benefits
    • capacity scales elastically with demand

    • scaling in instantaneous, both up and down

    • cost is proportional to demand to revenue opportunity



  • separation of responsibilities
    • infrastructure as a service: Amazon EC2

    • platform as a service: Google App Engine

    • software as a service: gmail





回复

使用道具 举报

推荐
 楼主| yclu 2019-2-3 16:17:38 | 只看该作者
全局:
L12 / Memory Management(这章有点复杂,尤其是在计算page table时)

* How does OS manage virtual/physical memory
    - Allocation
        - allocate/replace spaces between virtual and physical memory
        - For page based management, it means that allocate pages(virtual) to page frames(physical)
    - Arbitration
        - address translation and validate address
        - For page based management, it's implemented by page tables
        - For segment based management, it's implemented by segment registers
    - OS has hardwares support in CPU package called MMU
* Memory management mechanisms
    - Page based mechanism
        - physical/virtual pages have the same size, so that they only stores the beginning entry point and its offset
        - For the purpose of validation, it also stores the validation bits called flags, such as the right of writing.
        - Multi-level pages helps better utilize the space in physical memory since a process will not fully used the virtual memory it gets.
        - When pages should be swapped out
            - when memory usage is above a threshold
            - when cpu usage is below a threshold
        - Which pages should be swapped out
            - pages that won't be used by using policies such as LRU
            - pages that won't be written out
    - Segment based mechanism
        - It will have un-fixed memory size like page based does.
        - It's often used with pages.
* Memory Allocator
    - It's used to determine VA to PA mapping
    - It has different levels, kernel-level and user-level.
        - For kernel-level allocator, it allocates memory for kernel including kernel states and static process state
        - For user-level allocator, it allocates memory for user-level process including dynamic process state(heap), malloc/free
    - One memory allocation challenge is aggregation of free memory(简单来说,就是如何有效合并闲置的小记忆区块成一个大的区块)
        - buddy allocator: it divides memory into the power of 2 memory size
        - slab allocator: it uses internal fragmentation to create custom size for different purposes
回复

使用道具 举报

推荐
 楼主| yclu 2019-2-6 17:13:54 | 只看该作者
全局:
L15 / IO Management

* OS support for I/O devices
    - Basic devices features
        - control registers: command, data transfers, and status
        - micro-controller: cpu
        - on device memory
        - other logic: A/D converters
    - devices are connected through peripheral component interconnect(PCI)
    - access device register is equal to memory load/store
    - There are two paths a device can use to reach CPU
        - Interrupt
            - pros: can be generated as soon as possible
            - cons: interrupt handling steps
        - Polling
            - pros: it's convenient for OS
            - cons: delay or CPU overhead
        - Typical device access: a user process -> kernel -> driver -> device
    - virtual file system can solve the following three challenges
        - files are on more than one device
        - devices work better with other file systems implementations
        - files are not on a local device
    - virtual file system abstractions on linux
        - file: an element on which the VFS operate
        - file descriptor: OS representation of a file
        - inode: persistent representation of a file, "index"
        - dentry: directory entry
        - superblock: file system specific information regarding the layout
回复

使用道具 举报

🔗
wowmomsos 2019-1-8 21:21:12 | 只看该作者
全局:
这个是不是没有作业?
感觉咋样?
是好课吗?
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-9 00:18:27 | 只看该作者
全局:
基本要求知識點:
1. C programming
2. Command line usage
3. Using makefiles
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-9 00:22:06 | 只看该作者
全局:
wowmomsos 发表于 2019-1-8 21:21
这个是不是没有作业?
感觉咋样?
是好课吗?

似乎没有作业 只有一些内容的问答。
还没看完 但感觉蛮基础 楼主有推荐关于OS的进阶课程吗
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-9 22:42:58 | 只看该作者
全局:
L3: Introduction to OS
Take way notes:
* OS 可被定义为三个部分,abstraction(such as process management...), mechanism(such as allocate memory...), and policies(such as least recently accessed).
* OS 是介于application(such as browser...)和physical device(such as hard drive..)中间的介质
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-11 15:00:14 | 只看该作者
全局:
L4: Process and Process Management
Take way notes:
* What is a process: 它是一个程式执行中的状态,包含了变数,指令计数...
* How are processes represented by OS:
    - 它被表示成一个记忆区块(virtual address space),包含 text, data, stack, and heap
    - OS使用process control block(PCB, 一种数据结构)去管理processess
    - process有两种开启的基本方式,fork(创建和parent process相同的context)和exec(创建全新的context)
* How are multiple concurrent processes managed by OS:
    - OS使用cpu scheduler来管理process的运作,包含:preempt(中断), schedule(排成), and dispatch(发包)
    - process之间的互动称为inter process communication(IRP)
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-12 18:32:01 | 只看该作者
全局:
L5: Threads and Concurrency(这章节内容有点多, 主要建立于[https://s3.amazonaws.com/content.udacity-data.com/courses/ud923/references/ud923-birrell-paper.pdf]"An Introduction to Programming with Threads" by Birrell[/url])
Take way notes:
* What are threads: 他是一个工作中的process,它帮助更有效率使用CPU的计算能力
* How threads different from processes:
    - thread可以分享virtual spaces
    - process花更多时间context switch
    - thread通常有hot cache
* What data structures are used to implement and manage threads:
    - thread data structure
    - mutex 避免资源冲突
    - condition variables 提供mutex可以在指定情况下产生或解除
    - critical section structure 使用资源mutex的proxy,避免过度保护资源
    - fork(proc, args)
    - join(threads)
* Common pitfalls:
    - spurious wakeup 提早唤醒其他threads
    - dead locks 资源冲突
* threads design patterns
   - boss/workers
   - pipeline
   - layered
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-13 17:01:55 | 只看该作者
全局:
L6: Threads case study(这章蛮棒的,简单易懂,并且可以让前一章的内容更清晰)
Take way notes:
* What is PThreads: 它是POSIX(portable operating system interface) Threads的简称
* 相关数据结构:
    - thread data structure: pthread_attr_t
    - mutex: pthread_mutex_t
    - condition variable: pthread_cond_t
    - wait mechanism: pthread_wait_cond
* mutex小技巧:
    - 分享的资料需要记得使用同一个mutex,避免dead lock
    - mutex的scope必须分享给所有的threads
    - 将所有mutex使用全域性排列
    - 永远记得解除mutex
* condition variable小技巧:
    - 当条件被更动时,记得通知所有在等候的threads
    - 当不清楚使用signal/broadcast时,可先使用brodcast处理,但要记得会有效能损失(spurious wakeup)
    - 在使用signal/broadcast时,不一定需要mutex
回复

使用道具 举报

🔗
hengde12 2019-1-15 00:34:56 | 只看该作者
全局:
想问楼主为什么花时间在理论课程里面? intro to OS 应该都是理论,没有实际的project 和coding practice, 在时间紧的情况之下会效果不明显?
回复

使用道具 举报

🔗
 楼主| yclu 2019-1-15 16:31:49 | 只看该作者
全局:
hengde12 发表于 2019-1-15 00:34
想问楼主为什么花时间在理论课程里面? intro to OS 应该都是理论,没有实际的project 和coding practice,  ...

这来自于K大最近这篇帖子,https://www.1point3acres.com/bbs ... p;extra=&page=1

因为想往Machine Learning Engineer的方向前进,根据K大目前帖子里提及的技能应该是要有Operating System的理论知识,所以开始修了这门课。另外一个原因是直接啃Modern Operating Systems这本,实在晦涩难懂

如果有更应用导向的OS课程,还烦请推荐,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表