전체 글
-
[Chapter-9] file system개발공부/OS 2024. 8. 24. 19:11
-이대 반효경 교수님 강의 기반으로 작성되었습니다- File and file system파일 : 논리적인 저장 단위파일 시스템 : 운영체제와 모든 데이터, 프로그램의 저장과 접근을 위한 기법파티션 : 연속된 저장 공간을 나누어 사용할수 있도록 정의한 규약Access Methods순차접근 : 파일의 정보가 레코드 숱서대로 처리직접 접근 : 파일의 레코드를 임의의 순서로 접근 가능index 접근 : index를 먼저 찾고 대응되는 포인터를 얻는다.Directory제공하는 기능들파일 찾기파일 생성파일 삭제 디렉터리 나열rename파일 시스템 순회 ==> find로 찾을때 트리 아래 도 찾는기능dir 구성1단계 디렉터리 : 모든 파일들이 디렉터리 밑에 (별로다)2단계 디렉터리 : 사용자 별로 별도의 디렉터리트리..
-
[Chapter-8] Virtual Memory개발공부/OS 2024. 8. 24. 18:31
-이대 반효경 교수님 강의 기반으로 작성되었습니다- ++ virtual memory는 os 가 전적으로 관리 Demand Paging프로그램이 필요할 때만 페이지를 메모리에 로드 ==> 차지하는 물리적 메모리 양이 줄어듬 페이지? : 메모리 관리에서 사용하는 기본 단위valid / invalid bit (페이지의 헤더인듯)valid : 해당 페이지가 메모리에 존재 invalid : 페이지가 메모리에 존재 x, 맨 처음에는 모두 invalid Page Faultinvalid로 표시된 페이지에 접근하는 것접근 시 mmu(주소 변환 hw) trap 발생커널쪽에서 page fault handler 콜함 ==> 커널 함수에 있을듯?mm(memory management) dir 내부에 관련 코드가 있다 합니다.pa..
-
[Chapter-7] Memory Management개발공부/OS 2024. 8. 10. 16:01
-이대 반효경 교수님 강의 기반으로 작성되었습니다- logical vs physicallogical addps마다 독립적으로 가지는 주소 공간cpu가 보는 주소Physical add메모리에 실제 올라가는 위치 주소 바인딩 = symbolic ==> Logical ==> PhysicalCompile time binding물리적 메모리 주소 컴파일시absolute code 생성요즘 거의 안쓰임Load time bindingLoader 책임하에 물리적 메모리 주소 부여relocatable code (비어있는곳 어디든 올라갈 수 있음)Execution time binding(run time binding)실행 도중에 주소가 바뀔 수 있음.cpu가 주소를 참조할 때 마다 binding 점검 ==> 하드웨어적인 지..
-
-
[Chapter-5] Process Synchronization개발공부/OS 2024. 8. 4. 02:28
-이대 반효경 교수님 강의 기반으로 작성되었습니다- Race Condition= 여러 주체가 하나의 storage에 접근할때 race condition 가능성이 있음==> 최종 결과가 예상과 다를 수 있다. 크게1. 커널 수행 중 인터럽트 발생==> sol) 수행 도중에는 인터럽트를 수행하지 않도록 2. ps가 system call 하여 커널모드로 수행 중인데 문맥교환이 일어나는 경우==> sol) 커널 모드에서 수행 중일 때는 cpu preempt 하지 않음 3. mutips에서 shared memory 내의 커널 데이터==> sol) 한번에 하나의 cpu만 커널접근==> sol) 커널 내부에 있는 공유 데이터에 접근할 때마다 데이터에 lock, unlock Critical-Section Proble..
-
[4] 패치파일 만들기, 관리개발공부/openwrt 2024. 7. 27. 23:09
ref: [OpenWrt Wiki] Patching your application: Editing existing files (openwrt)https://openwrt.org/docs/guide-developer/toolchain/use-patches-with-buildsystem (openwrt)https://trac.gateworks.com/wiki/OpenWrt/Patch (quilt 명령어 관련)https://hamonikr.org/oss/115576 (quilt 기초)sudo apt install quiltQ. 패치 파일 왜쓰나요?버전관리… 는 당연한 말이고빌드 과정에서 download ==>패치 ==> 컴파일 즉 내가 수정한 내용(패치에 없는) 이 반영 안되고 삭제되어 컴파일됨수정 내용을 패..
-
[Chapter-4] cpu 스케줄링개발공부/OS 2024. 7. 21. 17:49
cpu burst : cpu만 연속적으로 사용i/o burst : io만 연속적으로 사용- 두가지를 반복하며 사용, 프로그램마다 다름 - io bound job : io가 많이 끼어든 작업 - cpu bound job : io가 별로 안끼어든 작업스케줄링에서 io bound job 이 문제이 중 cpu 보단 io 에 더 비중을 줘서 interactive job 에게 적절한 response를 기대함io bound ps : cpu를 잡고 계산하는 시간보다 io에 많은 시간이 필요cpu bound ps : cpu 위주cpu 스케줄러 : ready 상태 프로세스 중 이번에 cpu를 줄 프로세스를 고른다.dispatcher : cpu의 제어권을 스케줄러에 의해 선택된 프로세스에게 넘겨주는 역할을 하는 ..
-
[Chapter-3] 프로세스 관리개발공부/OS 2024. 7. 21. 02:27
-이대 반효경 교수님 강의 기반으로 작성되었습니다- 프로세스의 생성부모 ==> 자식(트리구조) 프로세스는 자원이 필요 1. 운영체제로 부터 얻어오기 2. 부모에게 얻어오기 (종류 : 전체, 일부, 아예 공유 x) ==> 내용이 같은데 공유를 하지 않는다면 낭비다++Copy on write ==> (cow) write가 발생 했을때 그때 카피뜨겠다. 관련된 시스템 콜- fork()부모프로그램 복사pc도 따라가기 때문에 무한 복제는 방지됩니다.Q. 부모와 자식 분간은 어떻게?A. pid로 (부모>0, 자식 = 0) - exec()새로운 프로그램 올리기== execlp(실행파일, 명령어, 파라미터...,NULL) 경로는 환경변수 PATH에 정의된 경로에서 찾는다네요 e..