본문 바로가기

혼공단 10기를 마치는 회고록 혼공단을 시작하게 된 계기 여러 악재가 겹치며 2학년 1학기 성적을 대차게 말아먹고(...) 앞으로 남은 전공 필수 과목들은 부족하더라도 공부를 하고 들어야겠다는 생각이 들었다. 해야겠다, 생각만 해봤자 미루기만 할 게 뻔하여 우선 책을 찾기 시작했다. 그러던 중 혼공단이라는 게 있다는 걸 알게 되었고, '어, 이거 공부도 하고 잘하면 간식도 타 먹고 일석이조잖아!'라는 생각에 고민하지도 않고 신청했다. 회고 1. 블로그 개설! 입학하자마자 들은 1학년 교양 과목에서 교수님은 이렇게 말씀하셨다. "대학교에서 지내는 동안 활동들을 흘려보내지 말고, 블로그든 인스타그램이든 남들이 볼 수 있는 곳에 기록하고 게시하세요. 그게 바로 포트폴리오입니다." 그러나 나는 알찬 대학교 1학년 생활을 흘려보내버렸다. 지금..
[6주차] Chapter 15. 파일, 디렉터리, 파일 시스템 Chapter 15 파일 시스템 15-1 파일과 디렉터리 1. 파일 ① 파일(file) -보조기억장치에 저장된 관련 정보의 집합 ② 속성(attribute) 또는 메타데이터(metadata) -파일 관련 부가 정보 ex) 파일 형식, 위치, 크기 등 ③ 파일 속성과 유형 -대표적 파일 속성의 종류는 아래 표 참고 속성 이름 의미 유형 운영체제가 인지하는 파일의 종류 크기 파일의 현재 크기와 허용 가능한 최대 크기 보호 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지 생성 날짜 파일이 생성된 날짜 마지막 접근 날짜 파일에 마지막으로 접근한 날짜 마지막 수정 날짜 파일이 마지막으로 수정된 날짜 생성자 파일을 생성한 사용자 소유자 파일을 소유한 사용자 위치 파일의 보조기억장치상의 현재 위치 -파일 ..
[6주차] Chapter 14. 스와핑, 페이징, 요구 페이징, 스래싱 Chapter 14 가상 메모리 14-1 연속 메모리 할당 1. 스와핑 ① 스와핑(swapping) -현재 실행되지 않는 프로세스를 메모리에서 보조기억장치 일부 영역으로 옮긴 후, 빈 메모리 공간에 다른 프로세스를 적재하여 실행하는 메모리 관리 기법 ② 스왑 영역(swap space) -프로세스들이 옮겨지는 보조기억장치의 일부 영역 ③ 스왑 아웃(swap-out) -현재 실행 중이 아닌 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 ④ 스왑 인(swap-in) -스왑 영역에 있던 프로세스가 다시 메모리로 옮겨지는 것 2. 메모리 할당 ① 최초 적합(first fit) -운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간이 있을 시 그 공간에 프로세스를 적재하는 방식 -발견 즉시 ..
[5주차] Chapter 13. 교착 상태, 교착 상태 해결 Chapter 13 교착 상태 13-1 교착 상태란 1. 식사하는 철학자 문제 ① 식사하는 철학자 문제(dining philosophers problem) -교착 상태가 어떤 상황에서, 왜 발생하는지와 해결 방법을 알아낼 수 있는 가상의 시나리오 동그란 원탁에 5명의 철학자가 앉아있고, 철학자들 사이사이에는 포크가 있다. 철학자들의 앞에는 각자 식사가 있고, 포크가 2개여야만 식사가 가능하다. 이때 철학자들은 아래와 같은 규칙으로 식사를 진행한다. ① 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어든다. ② 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다. ③ 왼쪽과 오른쪽 포크를 모두 집어 들면 정해진 시간 동안 식사를 한다. ④ 식사가 끝나면 오른쪽 포크를 내려 놓는다. ⑤ 오른쪽 포크를..
[5주차] Chapter 12. 동기화, 뮤텍스 락, 세마포, 모니터 Chapter 12 프로세스 동기화 12-1 동기화란 1. 동기화의 의미 ① 동기화(synchronization) -프로세스 동기화 : 프로세스 간의 수행 시기를 맞추는 것. 프로세스들이 올바르게 실행되려면 반드시 필요하다. 프로세스뿐만 아니라 스레드 또한 동기화의 대상이다. -실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기 -상호 배제(mutual exclusion) : 동시에 접근하면 안 되는 자원에 하나의 프로세스만 접근하게 하기 2. 생산자와 소비자 문제 ① 생산자와 소비자 문제 -생산자와 소비자는 '총합'이라는 데이터를 공유하고, 생산자는 총합에 1을 증가시키고 소비자는 총합에서 1을 감소시킨다. -생산자와 소비자가 동시에 접근해서는 안 되는 자원에 동시에 접근하여 실행 후 총합이 유지되..
[4주차] Chapter 11. 우선순위, 스케줄링 큐, 스케줄링 알고리즘 Chapter 11 CPU 스케줄링 11-1 CPU 스케줄링 개요 1. 프로세스 우선순위 ① CPU 스케줄링 (CPU scheduling) -운영체제가 프로세스들에게 CPU 자원을 배분하는 것 ② 우선순위(priority) -운영체제가 각 프로세스의 중요도에 맞게 CPU를 이용할 수 있도록 프로세스마다 부여하는 것 -운영체제는 각 프로세스의 PCB에 명시하고, 우선순위를 기준으로 먼저 처리할 프로세스를 결정한다. ③ 입출력 집중 프로세스(I/O bound process) -입출력 작업(ex. 비디오 재생, 디스크 백업 작업)이 많은 프로세스=입출력 버스트(I/O burst, 입출력장치를 기다리는 작업)가 많은 프로세스 -입출력을 위한 대기 상태에 더 많이 머무른다. -우선순위가 높다. ④ CPU 집중 프..
[4주차] Chapter 10. PCB, 문맥 교환, 프로세스 메모리 영역, 프로세스 상태, 복제와 옷 갈아입기, 스레드, 프로세스 Chapter 10 프로세스와 스레드 10-1 프로세스 개요 1. 프로세스 직접 확인하기 -윈도우는 작업 관리자의 [프로세스] 탭에서, 유닉스는 ps명령어로 확인 가능하다. ① 포그라운드 프로세스(foreground process) -사용자가 보는 앞에서 실행되는 프로세스 ② 백그라운드 프로세스(background process) -사용자가 보지 못하는 뒤편에서 실행되는 프로세스, 사용자와 상호작용이 있을 수도 없을 수도 있다. -데몬(daemon, 유닉스 운영체제) / 서비스(service, 윈도우 운영체제) : 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스 2. 프로세스 제어 블록 프로세스들은 차례대로 돌아가며 정해진 시간만큼 CPU를 이용하고 타이머 인터럽트(타임아웃 인터럽트,..
[4주차] Chapter 09. 운영체제, 커널, 이중 모드 Chapter 09 운영체제 시작하기 09-1 운영체제를 알아야 하는 이유 1. 운영체제란 ① 시스템 자원(자원) -프로그램을 실행할 때 필요한 요소들 ex) CPU, 메모리, 보조기억장치 같은 컴퓨터 부품 등 ② 운영체제(operating system) -프로그램 실행에 필요한 자원을 할당하여 프로그램이 올바르게 실행되도록 돕는 프로그램 -한 운영체제 안에 자원을 관리하는 여러 부분들이 있다. (CPU를 관리하는 부분, 메모리를 관리하는 부분 등) ex) 실행할 프로그램을 적재하고, 실행되지 않는 프로그램을 삭제하며 메모리 자원을 관리한다. ex) 여러 프로그램이 충돌하지 않고 공정하게 CPU를 이용할 수 있도록 분배한다. ③ 커널 영역(kernel space) -컴퓨터가 부팅될 때 운영체제가 적재되고..