분류 전체보기 82

[OS] Memory Management (3&4)

❗️Disclaimer : 이화여대 반효경 교수님 수업 자료 입니다. Multilevel Paging and Performance Address space 가 더 커지면 다단계 페이지 테이블 필요 각 단계의 페이지 테이블이 메모리에 존재하므로, logical address 의 physical address 변환에 더 많은 메모리 접근 필요 TLB를 통해 메모리 접근 시간을 줄일 수 있음 (바로 메모리 접근 가능) 4단계 페이지 테이블을 사용하는 경우 메모리 접근 시간이 100ns, TLB 접근 시간이 20ns 이고, TLB hit ratio 가 98% 인 경우 Effective memory access time = 0.98 * 120(TLB확인 20 + 실제 접근 100) + 0.02 * 520(페이지테..

Operating System 2022.01.24

KOCW 수강확인증 발급 서비스 기념 수강신청

오픈 강의 사이트에서 수강확인증 발급 서비스가 열렸다. 언제 생긴건지는 모르겠으나, 꼭 있었으면 좋겠다고 생각했던 기능인데 매우 반갑다. 평소에 학습을 하거나, 하는 와중에 있던 과목들을 수강확인증 발급을 받고싶어서 다시 신청했다. 완강하는데 어느정도 동기부여도 될 것 같다. 의지력을 풀로 발휘해서 완강하기를 바란다.

카테고리 없음 2022.01.18

[OS] Memory Management (2)

이화여자대학교 반효경 교수님 운영체제 강의 Paging 을 통한 메모리 관리 논리 주소를 페이지 단위로 쪼개서 관리한다. 페이지 테이블에서는 해당 페이지가 어떤 물리 메모리로 매핑되어 있는지 관리한다. (물리 : 프레임) 페이지 테이블을 통해 논리 페이지 번호를 물리 프레임 번호로 변환한다. 프로세스마다 TLB 가 다르기 때문에 context switching 이 일어날 때 마다 flush 시켜주고 복구 시켜주는 과정이 필요하다 페이지 테이블만 있을 때 보다 TLB를 두었을 때 룩업 시간이 더욱 단축된다. 2단계 페이지 테이블 프로그램마다 페이지 테이블을 위해 4MB 의 공간이 필요한 셈이므로, 공간 낭비가 심함. 페이지 테이블을 두 단계 거쳐서 주소를 찾는다. Page of Page table 사이즈는..

Operating System 2021.12.24

[OS] Memory Management (1)

이화여자대학교 반효경 교수님 운영체제 수업 8-1 Memory Management Logical vs Physical address logical address (= virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지 부터 시작 CPU 가 보는 주소는 logical address 임 CPU 는 하드웨어이므로 물리주소를 바라볼 것 같으나, 논리 주소를 바라본다. fetch, execute 시 매번 논리주소를 물리주소로 변환해서 알아내야 함 physical address 메모리에 실제 올라가는 위치 주소 바인딩 : 주소를 결정하는 것 symbolic binding -> logical address -> physical address 주소 바인딩 컴파일 타임 바인딩 ..

Operating System 2021.12.24

5월도 끝이구나

2021년 5월의 시작은 빨간날에 대한 기대감으로 잔뜩 부풀어 있었다. 돌이켜 보면 빨간날이 있었는지도 잘 기억이 나지 않을 정도로 항상 일정은 꽉 차있기만 했다. 정말 딱 하루, 될 대로 되라 식으로 일요일날 종일 누워만 있었는데, 아직까지 그 대가를 치루고 있는 것일까 ... 왜 나는 휴일에도 밀린 강의와 알 수 없는 과제들에 시달려야 하는가 ... 하지만 이 또한 한 달만 지나면 모두 미화되겠지 ... 8월에 졸업하면 또 "학생 때가 좋았는데" 이러겠지 ...? 🙄 5월의 수확이 뭔가 생각해보니 딱 두 가지가 떠오른다. 1. 사내에서 블록체인 스터디에 참여한 것 2. 양자 관련 책을 찾아 읽으며 물리학에 대한 호기심을 키운 것 양자에 관한 관심은 원래 많았다. 양자 보안, 양자 컴퓨터와 관련되어 늘..

Daily Thoughts 2021.05.30

Javascript code 안에 들어가기

고팍스에서 이번에 새로 들어가는 기능이 있는데, WebView 로 띄우는 html 안에다가 텍스트 버튼을 추가해야 했었다. 처음 태스크를 받았을 때 JavascriptInterface 써서 이렇게 저렇게 쉽게 하면 되겠네, 생각을 했었으나 나의 착각이었다. 태스크가 생각보다 복잡했던 이유는 다음과 같다. 1. 네트워크 요청을 통해서 어떠한 리스트를 받아와 해당 리스트에 있는 요소일 경우에만 버튼을 띄워주어야 한다. 2. 리스트의 길이가 크기 때문에 캐싱을 해야한다. 3. 네트워킹, 캐싱 코드는 현재 코드베이스를 disrupt 하면 안된다. 4. 안드로이드 웹뷰 자체의 성능이 좋지 않기 때문에 불필요한 연산을 최소화 해야 한다. 5. html 파일 안에 있는 iframe 내부의 또 다른 html 안의 요소..

Android 2021.03.21

훌륭한 개발자란 ?

훌륭한 개발자는 어떻게 하면 되는 거냐고 회사 분들에게 여쭈어 보았다. 장난 반으로 눈이 좋고 체력이 좋아야 한다고 말씀하시던 분도 계셨고 ㅎㅎ 우리 팀 리더분은 10년, 20년이 지나도 배울 가치가 있는 지식들을 꾸준히 학습하라고 하셨다. 그리고 자신이 구현한 소프트웨어가 있고, 누군가에게 나 자신을 소개하는 데 별 말이 필요 없으면 그러면 훌륭한 개발자라고 하셨다. "내가 누군지 설명 할 필요가 없다" 이 말이 참 인상깊었다. 어찌 보면 앞으로 신입보다는 경력직으로 이직할 일들이 많이 있을 텐데, 매 번 내가 무엇을 했고, 내가 어떤 사람인지 설명하려면 참 힘들 것 같다. 물론 기본적인 기술 면접이나 코딩 테스트는 거쳐야겠지만 '경력직으로 이직할 때 내가 누군지 설명하지 않아도 알게끔 하겠다'는 건 ..

Daily Thoughts 2021.03.04

[System Software] gcc, compiling, linking, libraries

참고 강의자료 gcc usage : gcc [options] FILE ... C 컴파일러 (C++ 컴파일러는 g++이다) 파일 이름은 반드시 .c 로 끝나야 한다. 컴파일 결과 실행 파일 이름이 a.out 이 된다. -o filename 위와 같이 옵션을 주면 실행파일 이름을 filename 으로 한다. cat > a.c #include int main(){ printf("linux is exciting\n"); } gcc -o exciting a.c Library 만들기 및 사용 (static) library file 은 .a로 끝난다. ar 커맨드를 사용해서 라이브러리 만들 수 있음 ar rcs libname.a a.o b.o c.o r : include this (replace if exist) c..

Operating System 2021.02.13