Skip to content

Instantly share code, notes, and snippets.

@iamben
Created January 27, 2013 16:37
Show Gist options
  • Save iamben/4649159 to your computer and use it in GitHub Desktop.
Save iamben/4649159 to your computer and use it in GitHub Desktop.

98 預官計概

寫到後面變得很草率, 因為背的東西真的太多了

自己斟酌一下吧, 我也不知道背起來會不會考

  1. Compiler internal

    這題要理解會花一點時間, 建議看不懂就放棄

    原始碼在編譯器中會經過一連串的分析轉換成真正的執行檔

    • 前端
      • Lexical: 語彙分析, 主要分析每行程式中的 token (類似語言中的詞彙, 作為分析的最小單位)
      • Syntax: 語法分析, 分析 token 的組成是否合乎語法
      • Semantic: 語意分析, 分析 token 組成的語意, 並轉換成對應的內部格式
      • Intermediate codegen: 產生內部用的分析程式碼
    • 後端
      • Code generator: 根據內部用的分析程式碼產生平台對應的執行碼
      • Code optimizer: 優化產生的執行碼
  2. OO

    HTML 嚴格說起來不是一種程式語言

    也沒有 OO 的概念 (封裝, 多型... etc)

  3. Binary tree

    看圖ㄅ bt

  4. IP, BJ4

  5. 數位簽章

    數位簽章是為了驗證送方的身分

    所以送方送出前會先用自己的私鑰(不公開)簽章

    收方再用送方的公鑰(公開)驗證

  6. 網路基礎

    一般家用 IP 分享器(ADSL modem 通常是用這種機器改來的)會有以下功能:

    • DHCP: 動態發 IP
    • NAT: 只用一個 public IP 就可以給多台 private network 的電腦上網
    • Switching: 多個網孔之間需要有 switching 功能

    DNS 是將 DN(網址)轉換為 IP 的對應機制, 一般都是選擇到外面查詢而非自建

  7. Memory addressing

    記憶體屬於 byte addressable (每次定址最細只能訂到 byte-level, 無法定到 bit-level)

    所以 1M 的位址最少需要 2^20 => 20 條 address line

  8. 訊號傳輸

    不確定怎麼解釋比較好, 不過長距離傳輸通常會牽扯到雜訊與衰減

    現在應用的通常都是類比傳數位, 例如用 銅纜(電), 光纖(光), 無線網路(電磁波)

  9. OSI, protocol stack

    physical addressing (這邊的 address 就是 MAC address) 是屬於 Layer 2 在做的事情

    這題對沒有網路基礎的算是蠻棘手的

    不過粗略的理解來看, 越上層做的事情越高階, 所以邏輯的控制都會在高層級 L4 - L7 做

    低層級就會是和傳輸相關 (addressing 等), 如 L3 就是做 IP addressing

  10. database

(這種敘述方式我小學來寫就知道要選 C 了)

Index 對存取量大的 table 建就好

正確的三個選項可以當小常識看看, 也許會考

  1. Subnetting

因為多了兩個 bit 所以是 4 個 Subnet

可以參考 Wiki 的算法, 和這題很像

  1. Infix to postfix

這題要理解會花一點時間, 建議看不懂就放棄

用堆疊(先進先出)來轉換,可以看 "中序轉後序"

  1. Complexity

階乘, 指數 (2^n) > n^? > logn > 常數

係數可以不看 (ex: C. log(n^2.5) = 2.5 logn = logn)

  1. WAP (Wireless Application Protocol)

這就用背的吧, WAP 網頁要用特別方式處理過

BCD 都是一般網頁技術, 只好怒選有 W 的

WML: Wireless Markup Language

  1. Web

Cookie 是由瀏覽器存在本機的小檔案, 這算是生活小常識了

如果是存在遠端的那叫 session

  1. HTTP

HTTP Error code, 這個去看 RFC

常見的有 404: not found, 403: forbiddan, 302 moved permanently 等等

500 是 Internal server error

  1. IPv4/IPv6

IPv4: 32 bits

IPv6: 128 bits

差 96 bits = 12 bytes

  1. Storage

嵌入式系統的 OS 儲存裝置特性:

  • 非揮發性 (關電資料還在)
  • 燒錄後唯獨

例如一般手機的 OS 就是一個例子

  1. CD

這我偷跑去查 wiki 了 = =

CD Write Speed

  1. Networking

除了背起來想不到其他方法

  1. 數學不外乎加減乘除平方開根號

65536 = 2^16 => 一個 pixel 需要 16 bits = 2 bytes

640*480*2(bytes)/1024.0 = 600 Kbytes

  1. FTP

撇開識別碼不談, 選項裡只有 FTP 可以直接傳檔

這裡的識別碼應該是指 FTP 的傳輸模式 (ASCII/binary.. etc)

  1. 3C

乖, 下去... (這題用看的也會)

  1. Compression

JPEG 是影像的壓縮技術

順帶一提, JPEG 是破壞性壓縮 (不可逆)

所以這裡的壓縮只能算是體積上的壓縮而已

  1. OS

這種系統講究的是即時性 (我亂掰的, 我也不知道)

所以通常會用 RTOS (real-time os)

  1. IEEE 754

這題要理解會花一點時間, 建議看不懂就放棄

這是浮點數表示的精簡版

有興趣可以參考 IEEE 754

  1. Scheduling time

CPU 一次只能跑一個程式

這個題目假設優先權高 (數字小) 的先執行

只要把圖畫出來就能知道等待時間了 (執行圖, 綠色是每個程式的等待時間, 黑色是執行時間)

平均: 28/5 = 5.6

  1. Flow control

Flow control 是指不要傳太快傳到對面被塞爆來不及收

順帶一提, Congestion control 是指不要傳太快導致中間經過的網路被塞爆

  1. Memory paging

Page 是切割記憶體的方式, 和 CPU 無關

  1. Binary tree

畫圖窮舉ㄅ, ㄏㄏㄏ

接左邊和右邊是不一樣的

  1. Logic gates

只有一個提示: 那個閘叫 NAND, 指的是先做 and 再做 not

  1. Lock

如同名字, exclusive lock 指的是排除其他人的 lock

  1. Crypt

其實我看不懂 C 再寫尛

不過 D 明顯不是必要的條件

  1. DES

幹這我不會, 有興趣真的請洽 wiki 了 = =

  1. AES

AES block 長度範圍是 128 - 256 byte (我也是看報紙才知道)

反正這種題目不是猜最大就是猜最小

牽扯到密碼一定越長越好, 所以選最短的

  1. Hash

扯到 hash 請記得 MD 開頭和 SHA 開頭

其他大概都很少用

  1. Firewall

(一般來說)防火牆不掃毒的ㄏㄏ

  1. Ping

Ping 底層就是 ICMP request/reply

  1. IDS

這是偵測是否有被入侵用的

總之他不是防毒軟體

  1. Binary

這... 交給你了

小數後面用乘的 (小學教過^^)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment