공부 기록

13. TLB14. Advanced Page Table15. Swapping: Mechanisms16. Swapping: Policies17. Concurrency & Threads18. Thread API19. Lock20. Semaphores21. I/O devices22. HDD23. Files & Directory24. FS Implementation25. FS Consistency
강의자료 ch3 정리 01. Insertion sort삽입 정렬(Insertion Sort)은 정렬 알고리즘 중 하나로, 배열의 각 요소를 하나씩 차례로 정렬된 위치에 삽입하는 방식임이미 정렬된 부분을 유지하면서 새로운 요소를 올바른 위치에 삽입하는 과정동작 과정: 두번째 요소부터 key로 정한 다음, 앞에 것들 중에서 들어갈 자리 찾는 과정을 반복함 02. Correctness of Insertion sort모든 입력에 대해 올바르게 작동하면 타당성이 있다고 봄 → 귀납법(Induction)으로 증명함 → k, k+1 만족시 k+n도 만족해야됨삽입 정렬은 i=n+1일 때 A[1:n]까지는 항상 정렬된 상태여야됨 ⇒ loop invariant(루프 불변성)을 만족시킴을 귀납법을 통해 증명하면 타당성이..
05. CPU Scheduling  06. Multi-level Feedback Queue  07. Multiprocessor Scheduling  08. Address Space 09. Memory API 10. Address Translation 11. Segmentation 12. Paging
CPU를 효율적으로 가상화하는 방법 -> OS가 time sharing을 통해 물리적인 CPU를 공유해야 한다. 여기서 발생하는 두가지 Issue1. 성능: 시스템에 과도한 overhead 없이 가상화를 구현하려면 어떻게 해야 하는지2. 제어: CPU에 대한 제어를 유지하면서 어떻게 효율적으로 프로세스를 실행하는지 01. Direct ExecutionCPU에서 직접 프로그램을 실행하는 방법이다.OSProgram1. proc list에 대한 entry 생성 (PCB)2. prog에 대한 메모리 할당3. 프로그램을 메모리에 Load4. argc, argv로 stack setup5. register clear6. Execute main()--------------------------------proc 생성 ..
01. Process APIOS가 제공하는 프로세스와 관련된 함수로, 프로세스 생성, 종료와 같은 제어를 다룬다.  02. Process CreationChild proc에는 자원이 필요 -> OS가 주거나 Parent가 shareResource sharing 종류Parent와 Child가 모든 자원을 공유Parent의 자원 일부만 Child가 공유받음Parent와 Child가 자원 공유하지 않음Execution 종류Parent와 Child가 동시 실행 ("$cmd &"의 경우 백그라운드에서 동시 실행: cmd가 child, $(쉘)이 parent / 만약 &이 아니었다면 cmd(child)가 끝날 때까지 $이 안 뜸(동시 실행 x)) Parent가 Child가 종료되길 기다림 (wait)Address ..
01. ProcessProcess == running program (즉, disk에 실행 가능한 상태로 있으면 프로그램이었다가 실행 시작하면 프로세스) 프로세스 구성 요소Memory (=address space, DRAM에 적재)Code (=text = section)Data (전역변수)Stack (Func call)Heap (동적 할당, malloc)RegisterProgram counterStack pointer 02. Process APIOS가 프로세스의 제어를 위해 제공하는 API(function, method 등 SW)Creat (프로세스 생성, fork())Destroy (프로세스 중단)Wait (프로세스가 종료되길 기다림)Miscellaneous Control (프로세스를 일시중단 했다가 ..
강의자료 공부 01. Operating system (OS)컴퓨터 시스템이 정확하고 효율적으로 동작할 수 있도록 도와주는 resource manager로서, CPU, Memory, Disk를 관리- 실행할 프로그램이 많음 -> CPU 공유- 여러 프로그램이 동시에 명령어, 데이터에 접근 -> Memory 공유- 여러 프로그램이 장치에 접근 -> Disk 공유 => 프로그램 실행을 쉽게 만들어 주고 상호 작용할 수 있도록 만들어 줌 (가상화, 동시성, 지속성)  02. Virtualization (가상화)OS는 physical resource(processor, memory, disk)를 가져와서 자신의 가상 형태로 변환 (OS = 가상머신) 1) Virtualizing the CPU시스템은 매우 많은 가..
01. 게시글 삭제이번엔 버튼을 눌렀을 때 게시글이 삭제될 수 있도록 구현하는 차례다. 먼저 서비스에서 삭제 함수를 만들어 준다.해당 id값을 받으면 deleteById를 통해 repository에서 지워준다.// 특정 게시글 삭제public void boardDelete(Integer id) { boardRepository.deleteById(id);}  그리고 컨트롤러에서 서비스함수를 이용하여 GetMapping을 시켜준다.board/delete 페이지에서 삭제를 했다가 redirect를 통해 다시 리스트 페이지로 넘어가게 된다.@GetMapping("board/delete")public String boardDelete(@RequestParam("id") Integer id) { boar..
01. 게시글 리스트 먼저 mariaDB에서 테스트 데이터를 생성해준다.여기서 코드 실행은 실행할 부분을 드래그해서 ctrl+엔터 치면 된다. 추가할 땐 추가한 라인만 실행 시킨 뒤 나머지 실행 부분을 다시 실행한다. (여기서 오류나면 맨 위에 use board; 추가한뒤 그것만 실행했다가 아래 영역만 재실행)   call 하고나서 board 표보면 아래처럼 추가된 것을 확인할 수 있다.     서비스에 아래 코드 추가public List boardList() { return boardRepository.findAll();}[Tip] 빨간 글씨로 오류가 나면 해당 부분 드래그한 뒤 ctrl + 스페이스바 누르면 자동완성들이 아래로 뜸 -> 그중에 맞는 거 선택하면 됨 (여기서는 List가 오류나서 ..
어제 이어서 영상 따라 만들어 보는 중~.~ 01. 테이블 생성먼저 mariaDB에서 테이블을 생성해준다.Table 이름은 똑같이 board로 하고 아래 column들 설정해주면 됨 예전 같았으면 저 설정값들이랑 쿼리 코드가 뭔지 몰랐을 텐데...sqld 공부하고 나니까 다 알게됨PK:기본키 / NN: Not Null근데 사실 다른 건 설명 안들어서 약자니까 감이 안옴UQ는 혹시 고유키인가 (그럴듯함)  이렇게 하면 이제 다시 끄고 인텔리제이로 ㄱㄱ   02. 게시글 작성폼 생성이거 만드는 건데 어제 했던 코드에서 resources -> templatesnew html 파일 생성  꾸미는건 프론트 영역이니까 지금은 대충 아래처럼만 써준다. 작성  이번에 intellij 처..
rim08
'공부 기록' 태그의 글 목록