will

@willwillhi

Joined on May 25, 2022

  • contributed by < willwillhi1 > 實驗環境 $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ lscpu
     Like  Bookmark
  • contributed by < willwillhi1 > 開發環境 $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ lscpu
     Like  Bookmark
  • 指標篇 心得 例子: void **(*d) (int &, char **(*)(char *, char **)); d 是 pointer to a function 並且回傳 pointer to pointer to void 參數一: reference to int 參數二: pointer to function 並且回傳 pointer to pointer to char參數一: pointer to char 參數二: pointer to pointer to char C 語言只有 call-by-value ptr 是個 pointer type,對 ptr++ 來說,並不是單純 ptr = ptr + 1,而是遞增或遞移 1 個「單位」
     Like  Bookmark
  • 參考 ath6kl_set_ies 的實作,他會先把 struct cfg80211_beacon_data *info 的 beacon_ies 和 beacon_ies_len 直接拿來用 繼續看到 /* this also clears IE in fw if it's not set */ res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, WMI_FRAME_BEACON, info->beacon_ies, info->beacon_ies_len); 可以發現裡面負責複製 ie 的程式為
     Like  Bookmark
  • contributed by < willwillhi1 > 測驗一 先補一些相關的知識 treesort 基本的做法是對所有要排序的元素建立二元搜尋數,然後就可以從中列出排序數組。經典的使用時機就是用在 online 的情境之中也就是會對這個數組有較多的操作(插入、刪除等)。 所以如果是用在 one-time sort,還是用 quick sort 或 merge sort 就可以了。 red-black tree 規則: 每個節點非黑即白。 root 節點一定是黑色。
     Like  Bookmark
  • Management Architecture 80211 管理架構由三個元件組成 MAC layer management entity (MLME) physical-layer management entity (PLME) system management entity (SME) SME 是使用者或設備驅動程序跟 802.11 網路界面互動和取得狀態訊息的方式 MAC 與 PHY 協議層皆可訪問 management information base,簡稱 MIB,MIB 簡單來說可供查詢狀態信息。 圖中共有三個 SAP(Service Access Point, 用於資料轉送)
     Like 4 Bookmark
  • struct owl_context: 表示最基本的結構體,整個 driver 只會有一個 struct owl_context { /* We may not need this lock, cause vif_list would not change during * the whole lifetime. */ struct mutex lock; /* Indicate the program state */ enum vwifi_state state; /* List for maintaining all interfaces */
     Like  Bookmark
  • 頻率 & 頻寬 每一對通訊使用者必須使用一個「頻率範圍」來通話:通訊時不能只使用一個「頻率」,必須使用一個「頻率範圍」,這個頻率範圍稱為「頻寬(Bandwidth)」。我們說話不可能只有一種頻率,而會有高音(高頻)與低音(低頻)的變化,因此我們說話其實是發出某一個頻率範圍(頻寬)的聲音(聲波)。同理,當我們以高頻電磁波來傳送語音訊號時,也必須使用某一個頻率範圍(頻寬)才行。 不同對的通訊使用者必須使用「不同的頻率範圍」來通話:假設甲和乙使用頻率 900~901MHz 的電磁波通話,則丙和丁使用頻率 901~902MHz 的電磁波通話。手機並不會分辨到底是誰和誰在通話,而是接收「某一個頻率範圍」,因此甲與乙的手機接收頻率 900~901MHz 的電磁波,而丙與丁的手機接收頻率 901~902MHz 的電磁波,換句話說,所有的通訊元件都是「只認頻率不認人」。如果甲的手機可以同時接收頻率 900~901MHz 與 901~902MHz 的電磁波,則他會同時聽到乙、丙、丁三個人的聲音。 頻率愈低繞射效果愈好(KHz>MHz>GHz) 繞射效果愈好代表可以在傳遞途中繞過障礙物,因此雖然基地台在室外,但是頻率MHz的電磁波可以繞過牆壁進入室內,我們在室內可以講手機,收音機在室內可以聽音樂,而衛星通訊使用GHz的電磁波無法繞過屋頂,因此必須在屋頂安裝碟型天線接收訊號再傳送到室內 頻率愈高可用頻寬愈寬(GHz>MHz>KHz) 頻寬的定義為「可以傳遞訊號的頻率範圍」,單位與頻率相同為「赫茲(Hz)」
     Like 4 Bookmark
  • contributed by < willwillhi1 > 測驗二 :::warning 逐行解釋程式碼之前,應先探討在記憶體配置器中,使用紅黑樹來處理 free list 的考慮因素。 :notes: jserv ::: free list 的理解 先從最基本的 allocator 講起,可以分為:
     Like  Bookmark
  • contributed by < willwillhi1 > treesort.c 程式碼的理解在 willwillhi1 / quiz3 中 修改程式 node_t 結構體 參考作業一的 list_head 的實作,將原本的結構體中用來表示紅黑樹的地方抽離出來單獨使用。 原本的實作為以下,將 uintptr_t color, struct __node *left, *right 從 node_t 裡移出來。
     Like 1 Bookmark
  • 大家好,我想分享一個我最近做的筆記,主題是把第三周測驗題的第一題 treesort 整合進第一周作業的 lab0-c,目前主要的修改有: 參考 linux 在 Linked list 的實作,將紅黑數節點的資訊從原本的結構體 node_t 移出到 rb_node 結構體,好處在於只要將 rb_node 納入到新的結構體的成員即可操作,不必另外維護一顆紅黑樹。 加入印出 level order 的功能方便除錯,選擇 level order 的原因是因為比起前、中、後序它可以決定唯一的二元樹。 利用 lab0-c 提供的 list.h 標頭檔改寫 treesort 函式,並將其加入 qtest 中。 引入 memory pool,參考 rv32emu 在 memory pool 的實作,用於執行 treesort 前預先配置好記憶體,之後重用該空間,從而縮減動態記憶體配置的成本。 筆記: https://hackmd.io/@willwillhi/treesort
     Like  Bookmark
  • contributed by < willwillhi1 > 測驗 2 Timsort 是 Insertion Sort 和 Merge Sort 的結合,特點是速度快.在最佳狀況只有 $O(n)$,平均和最糟狀況也有 $O(n log (n))$。 整個做法的原理是先把資料分成小區塊(又可以叫做 run),一般來說範圍會在 32 ~ 64 之間,然後把小區塊用 insertion sort 排序,再把這些區塊用 merge sort 合併起來。 參考 Wikipedia: Timsort Timsort was designed to take advantage of runs of consecutive ordered elements that already exist in most real-world data
     Like  Bookmark
  • 0000000000000380 <bn_to_string>: 380: e8 00 00 00 00 callq 385 <bn_to_string+0x5> 385: 48 b9 ab aa aa aa aa movabs $0xaaaaaaaaaaaaaaab,%rcx 38c: aa aa aa 38f: 89 f2 mov %esi,%edx 391: 55 push %rbp 392: 48 c1 e2 05 shl $0x5,%rdx 396: 48 89 d0 mov %rdx,%rax 399: 48 f7 e1 mul %rcx 39c: 48 89 e5 mov %rsp,%rbp
     Like  Bookmark
  • contributed by < willwillhi1 > 測驗一 uint64_t next_pow2(uint64_t x) { x |= x >> 1; x |= x >> 1; x |= x >> 1; x |= x >> 1; x |= x >> 1;
     Like  Bookmark
  • contributed by < willwillhi1 > 測驗一 static void list_sort(struct list_head *head) { if (list_empty(head) || list_is_singular(head)) return; struct list_head list_less, list_greater; INIT_LIST_HEAD(&list_less);
     Like  Bookmark
  • 資訊科技產業課程-自評 在我選修這堂課之前我本來以為我的實力普普偏弱,所以在未來有個不錯的工作就可以了,不敢想像自己有辦法去那些大公司上班,但是在修了這門課之後我了解到我其實是有機會的,在老師告訴了我們如何找到自己想要的職缺、在一場面試中該如何表現以及許多校友的經驗分享之後,讓我覺得或許我也有機會進去我心目中的理想公司! 該課程我認為可以分成三個環節如何看待一個職缺以及尋找機會 如何應對面試(作業檢討) 校友經驗分享 如何看待一個職缺: 我在這堂課中學到了如何正確的看待一個職缺
     Like  Bookmark
  • 貢獻者: 威爾 will 模擬面試錄影(漢) 模擬面試錄影(漢) 模擬面試錄影(英) 🧔:interviewer 👶:interviewee 230. Kth Smallest Element in a BST 測驗說明與問答 🧔:希望 will 可以實作一個 function,輸入一個二元搜索樹(BST),這個 function 可以找出裡面第 k 小的元素。
     Like  Bookmark
  • 模擬面試錄影 🧔:interviewer 👶:interviewee 863. All Nodes Distance K in Binary Tree 面試流程 🧔: Hello, welcome to today's interview.I am today's interviewer. 🧔: Then we will have two problem today. 🧔: let's start first problem! 👶: OK! 🧔: First we will have three inputs.the root of a binary tree.
     Like  Bookmark
  • 47. Permutations II 題目: Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order. 範例 Example 1: Input: nums = [1,1,2] Output:[[1,1,2],[1,2,1],[2,1,1]] Example 2:
     Like  Bookmark
  • Lab2: RISC-V Toolchain Motivation: 想要學習 struct 與 linked list 的寫法 #include <stdio.h> #include <stdlib.h> struct node{ int val; struct node* next;
     Like  Bookmark