컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제 35

엄청 늦었지만 후기

정말 늦은 후기다. 끝내기는 8월 14일에 올렸는데 여름휴가를 다녀온 나는 공부하겠다는 의지마저 놀고 싶다는 에너지로 치환했는지 2주동안 겁나 놀았다. 아니다 정확히는 공부를 하지 않았다. 젠장.. 일단 마음을 다 잡고 다시 블로그에 후기를 적자. 혼자공부하는 시리즈는 기초지식 부족한 사람에게는 단비같은 책이지만 그래도 부족한 감이 없진 않았다. 뭐 애초에 한 권으로 컴구와 운영체제를 끝내기는 말이 안될 것이다. 어느정도 선수지식을 가져가기 위해 산 것이니 만족도는 별 5개중에 5개 아주 좋았다고 생각한다. 인프런 강의도 다 듣고 생각이 안날 떈 책보단 블로그 정리한 내용을 보도록 해야겠다. 다들 열심히 살아요...

34.파일 시스템

1.파일시스템 1)정의 -파일과 디렉터리를 보조기억장치에 저장하고 접근할 수 있게 하는 운영체제 내부 프로그램. 2.파티셔닝과 포매팅 1)파티셔닝(partitioning): 저장장치의 논리적인 영역을 구획하는 작업을 의미하고 나누어진 각각의 영역을 파티션(partition)이라고 한다. 2)포매팅(formatting):파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지 결정하고, 새로운 데이터를 쓸 준비를 하는 작업. -파일시스템은 여러종류가 있고 파티션마다 다른 파일시스템을 적용할 수 있다. 3.파일할당 방법 1)개요 -운영체제는 파일과 디렉터리를 블록 단위로 읽고 쓴다. 이것은 하나의 파일이 보조기억장치에 저장될 때 최소단위가 블록 단위다. -하드디스크의 가장 작은 저장단위는 섹터이지..

33.파일과 디렉토리

1.파일(file) 1)정의 -하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합 -파일에는 실행하기위한 정보와 관련된 부가속성으로 이루어져 있고 이 부가속성을 메타데이터(metadata) 또는 속성(attribute)라고 부른다 2)파일 속성과 유형 -파일 속성 중 유형은 운영체제가 인식하는 파일 종류를 나타낸다. -같은 이름의 파일이라도 유형이 다르면 실행 양상도 달라지고 운영체제에 실행파일의 유형을 알려주기 위해 확장자(extension)를 이용한다. -확장자란 파일 이름 뒤에 붙어 파일의 종류가 무엇인지 운영체제에 알려준다. *파일 유형 종류 3)파일연산을 위한 호출 -파일을 다루는 모든 작업은 운영체제에 의해 이루어진다. -어떤 응용프로그램도 임의로 파일을 조작할 수 없으며 파일..

32.페이지 교체와 프레임 할당

1.요구 페이징 1)정의 : 프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법. -요구페이징 시스템이 안정적으로 작동하려면 필연적으로 두 가지를 해결해야한다. -하나는 페이제 교체이고 다른하나는 프레임할당이다. *요구 페이징 과정 2)순수 요구 페이징(pure demand paging) -실행부터 페이지를 메모리에 적재하지 않은 채 무작정 실행하여 연속적인 페이지 폴트를 처리함으로써 실행 이후의 페이지폴트의 빈도를 떨어뜨리는 기법. 2.페이지 교체 알고리즘 1)정의 및 개요 -요구 페이징 기법으로 페이즈를 적재하다 보면 메모리는 가득 차게 되고 필요한 페이지를 적재하기 위해 보조기억장치와의 페이지 교환이 이루어진다. -어떤 페이징를 내보내는 것이..

31.페이징을 통한 가상메모리 관리

1.가상메모리(virtual memory) 1)정의 및 개요 -프로세스를 메모리에 연속적으로 할당하는 방식은 외부단편화와 물리메모리보다 큰 프로세스를 실행할 수 없는 단점이 있다. -가상메모리란 실행하고자 하는 프로그램 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술이다. 2.페이징(paging) 1)정의 및 개요 -외부 단편화가 생기는 이유는 연속적인 메모리 할당이다. -메모리와 프로세스를 일정한 단위로 잘라 불연속적인 할당을 할 수 있다면 외부단편화가 발생하지 않는다. -프로세스의 논리 주소 공간을 페이지(page),메모리 물리 주소공간을 프레임(frame)으로 잘라 관리하는 기법이 페이징이다. 2)페이징 인, 페이징 아웃 -페이징에서도 스왑핑을 사용할..

29.교착 상태 해결방법

1.교착상태 예방 1)정의 및 개요 -교착상태는 4가지의 조건(상호배제,원형대기,비선점,점유와 대기) 모두 충족되지 않으먼 발생하지 않는다. -교착상태 예방은 발생하는 조건을 미리 사전에 방지하는 것을 말한다. 2)상호배제 예방: 자원을 공유하는 것으로 방지할 수 있지만 모든 자원에 적용하기엔 무리가 있다. -점유와 대기 예방: 프로세스에 자원을 모두 할당하거나 아예 가지지 않는 상태만 되게 하는것. 그러면 자원의 활용률이 낮아진다. 3)비선점 예방 프로세스가 가지고 있는 자원을 다른 프로세스가 가져올 수 있게 하는것. 일부 자원에는 효과적이나 프로세스가 자원을 뺏어선 안되는 작업이 있을 수 있으므로 범용성이 떨어지는 방법. 4)원형대기 예방 모든 자원에 번호를 붙이고 오름차순으로 자원을 할당하여 원형대..

28.교착상태

1.교착 상태(Dead lock) 1)정의 :두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태. -프로그래밍에서는 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미. 2.교착상태 발생조건 1)상호배제 -동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하는 것. -프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때 발생. 2)점유와 대기 -어떠한 자원을 할당 받은 상태에서 다른 자원을 할당 받기를 기다리는 것. 3)비선점 -프로세스가 자원을 가지고 작업하고 있는 동안 다른 프로세스가 자원을 가져오지 못하는 것. 4)원형대기 -프로세스가 요청 ..

27.동기화 기법

1.뮤텍스 락(Mutex Rock: MUTual Excusion Lock) 1)정의 및 개요 -뮤텍스는 한 프로세스의 내부에서 여러 스레드의 임계구역 제어를 위해 사용하는 객체를 뜻한다. -뮤텍스 락은 동시에 접근해서는 안되는 자원을 동시에 접근하지 않도록 잠금하는 동기화 기법이다. *탈의실을 임계구역이라 가정했을 떄 -뮤텍스락을 구현하기 위해서는 잠금 확인을 위한 역할의 변수 lock(bool), 임계구역을 반복적으로 확인하고 임계구역을 잠그는 acquire()함수, 임계구역내에 작업이 끝나면 lock을 해제하는 release()함수가 있다. *바쁜대기(busy wait):잠금(락) 상태를 지속적으로 확인하는 상태. 2.세마포(semaphore) 1)정의) -공유 자원이 여러 개일 떄 접근할 수 있는 ..

26.프로세스 동기화

1.프로세스 동기화 1)정의 및 개요 -프로세스들은 작업을 수행하기 위해 협력하고 영향을 주고 받는다. -프로세스들의 실행순서와 자원의 일관성을 보장하기 위해 동기화 작업이 필요하다. *동기화:작업들 사이의 수행 시기를 맞추는 것. 사건이 동시에 일어나거나, 일정한 간격을 두고 일어나도록 시간의 간격을 조정하는 것을 이른다. -프로세스 동기화란 프로세스들 사이의 수행시기를 맞추는 것. -또한 프로세스의 동기화에서 수행시기를 맞춘다는 것은 실행 순서 제어,상호 배제를 의미한다. 2)실행순서제어 -프로세스를 올바른 순서대로 실행하는 것. -book이라는 텍스트가 있을 때 writer의 프로세스가 실행되어야 reader프로세스가 올바르게 작동 할 수 있다. 3)상호 배제(mutual exclusion) -동시..

25.CPU 스케일링 알고리즘

1.CPU 스케일링 알고리즘 1)정의:CPU 스케일링을 효율적으로 하기 위한 방법 및 구조 2.선입 선처리 스케줄링(FCFS:First Come First Served Scheduling) 1)정의: CPU에 먼저 작업을 요청한 프로세스를 우선으로 처리하는 방식. -한 프로세스가 CPU를 오래 가지고 있으므로 다른 프로세스는 앞의 프로세스가 처리될 떄까지 기다릴 수 밖에 없다. 그것을 호위효과(convoy)라고 한다. - 3.최단 작업 우선 스케줄링(SJF: Shortest Job First Scheduling) 1)정의 : CPU 사용시간이 가장 짧은 프로세스부터 먼저 처리하는 방식. 4.라운드 로빈 스케줄링(round robin scheduling) 1)정의:선입 선처리 스케줄링에 타임슬라이스를 추가..