본문 바로가기

전체 글

(177)
Computer Structure & OS(15) - 파일 시스템 1) 파일과 디렉터리    1-1) 파일    1-2) 디렉터리    1-3) 상대 경로를 나타내는 또 다른 방법2) 파일 시스템    2-1) 파티셔닝과 포매팅    2-2) 파일 할당 방법    2-3) 파일 시스템 살펴보기    2-4) 저널링 파일 시스템    2-5) 마운트       1) 파일과 디렉터리1-1) 파일파일(file) : 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미함(즉, 파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미함)모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보가 있는데 이 부가 정보를 속성(attribute) 또는 메타데이터(metadata)라고 부름파일 속성유형 : 운영체제가 인지하는 파일의 종류를..
Computer Structure & OS(14) - 가상 메모리 1) 연속 메모리 할당    1-1) 스와핑    1-2) 메모리 할당    1-3) 외부 단편화2) 페이징을 통한 가상 메모리 관리    2-1) 페이징이란    2-2) 페이지 테이블    2-3) 페이징에서의 주소 변환    2-4) 페이지 테이블 엔트리3) 페이지 교체와 프레임 할당    3-1) 요구 페이징    3-2) 페이지 교체 알고리즘    3-3) 스래싱과 프레임 할당       1) 연속 메모리 할당1-1) 스와핑연속 메모리 할당 방식 : 프로세스에 연속적인 메모리 공간을 할당하는 방식스와핑(swapping) : 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법스왑 영역(swap space) : 프로세스들이 쫓겨나는..
Computer Structure & OS(13) - 교착 상태 1) 교착 상태란    1-1) 식사하는 철학자 문제    1-2) 자원 할당 그래프    1-3) 교착 상태 발생 조건2) 교착 상태 해결 방법    2-1) 교착 상태 예방    2-2) 교착 상태 회피    2-3) 교착 상태 검출 후 회복      1) 교착 상태란1-1) 식사하는 철학자 문제식사하는 철학자 문제(dining philosphers problem) : 교착 상태의 발생을 보여 주는 고전적인 예시계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어듦계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어듦왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간 동안 식사를 함식사 시간이 끝나면 오른쪽 포크를 내려놓음오른쪽 포크를 내려놓은 뒤 왼쪽 포크를 내려놓음다시 맨 첫 번째 과정부터 반복함하지만..
Computer Structure & OS(12) - 프로세스 동기화 1) 동기화란    1-1) 동기화의 의미    1-2) 생산자와 소비자 문제    1-3) 공유 자원과 임계 구역2) 공유 자원과 임계 구역    2-1) 뮤텍스 락    2-2) 세마포    2-3) 모니터      1) 동기화란1-1) 동기화의 의미동기화(synchronization) : 특정 자원에 접근할 때 한 개의 프로세스만 접근하게 하거나(상호 배제), 프로세스를 올바른 순서대로 실행하게 하는 것(실행 순서 제어)을 의미함실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 1-2) 생산자와 소비자 문제생산자와 소비자 문제는 상호 배제를 위한 동기화와 관련된 고전적이고 유명한 문제임생산자와 소비자 문제는 물건을 ..
Computer Structure & OS(11) - CPU 스케줄링 1) CPU 스케줄링 개요    1-1) 프로세스 우선순위    1-2) 스케줄링 큐    1-3) 선점형과 비선점형 스케줄링2) CPU 스케줄링 알고리즘    2-1) 스케줄링 알고리즘의 종류       1) CPU 스케줄링 개요1-1) 프로세스 우선순위CPU 스케줄링(CPU scheduling) : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미함입출력 집중 프로세스(I/O bound process) : 비디오 재생이나 디스크 백업 작업을 담당하는 프로세스와 같이 입출력 작업이 많은 프로세스(입출력 집중 프로세스는 실행 상태보다는 입출력을 위한 대기 상태에 더 많이 머무르게 됨)CPU 집중 프로세스(CPU bound process) : 복잡한 수학 연산, 컴파일, 그래..
Computer Structure & OS(10) - 프로세스와 스레드 1) 프로세스 개요    1-1) 프로세스 직접 확인하기    1-2) 프로세스 제어 블록    1-3) 문맥 교환    1-4) 프로세스의 메모리 영역2) 프로세스 상태와 계층 구조    2-1) 프로세스 상태    2-2) 프로세스 계층 구조    2-3) 프로세스 생성 기법3) 스레드    3-1) 프로세스와 스레드    3-2) 멀티프로세스와 멀티스레드       1) 프로세스 개요1-1) 프로세스 직접 확인하기프로세스(process) : 실행 중인 프로그램프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 됨(이 과정을 '프로세스를 생성한다'라고 표현함)프로세스의 종류에는 포그라..
Computer Structure & OS(9) - 운영체제 시작하기 1) 운영체제를 알아야 하는 이유    1-1) 운영체제란    1-2) 운영체제를 알아야 하는 이유2) 운영체제의 큰 그림    2-1) 운영체제의 심장, 커널    2-2) 이중 모드와 시스템 호출    2-3) 운영체제의 핵심 서비스    2-4) 가상 머신과 이중 모드의 발전    2-5) 시스템 호출의 종류       1) 운영체제를 알아야 하는 이유1-1) 운영체제란운영체제(operating system) : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램시스템 자원(혹은 줄여서 자원) : 프로그램 실행에 마땅히 필요한 요소들을 의미함운영체제는 커널 영역(kernel space)에 적재되어 사용자 영역(user space)에 적재된 응용 프로그램들..
Computer Structure & OS(8) - 입출력장치 1) 장치 컨트롤러와 장치 드라이버    1-1) 장치 컨트롤러    1-2) 장치 드라이버2) 다양한 입출력 방법    2-1) 프로그램 입출력    2-2) 인터럽트 기반 입출력    2-3) DMA 입출력       1) 장치 컨트롤러와 장치 드라이버1-1) 장치 컨트롤러입출력장치가 다루기 까다로운 이유입출력장치에는 종류가 너무나도 많음 : 키보드, 마우스, USB 메모리, 모니터 등의 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기가 어려움일반적으로 CPU와 메모리의 데이터 전송률(transfer rate - 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표)은 높지만 입출력장치의 데이터 전송률은 낮음 : 이러한 전송률의 차이는 CPU와 메모리, 입출력장치 간의 통신을 어렵게 함모든 입..