본문 바로가기
반응형

ComputerScience26

파일 시스템의 기본 개념 이 포스트는 실제 파일 시스템의 내용보다는 그 기초가 되는 내용들로 구성되어있습니다. 우리는 컴퓨터 작업을 한 뒤 SSD, 하드디스크 등 파일들을 저장하게 됩니다. 이런 보조 저장장치에 논리적 저장 단위를 정의합니다. txt나 exe 같은 일련의 바이너리 데이터를 규정하여 보조 저장장치에 저장하기 위한 최소한의 단위입니다. 파일의 구성과 개념 파일 유형 파일 유형을 알고 그에 대한 올바른 연산을 한다면 합리적으로 사용하게 됩니다. 예를 들어 컴파일을 해야 하는 소스코드 파일을 링킹 같은 작업을 한다면 쓰레기 파일을 만들어 내게 됩니다. 흔히 확장자라고 하며 이에 따라 파일을 다루게 됩니다. 실행파일인 exe 소스코드 확장자 c, cpp, java 배치 확장자인 bat, sh 등이 존재합니다. 확장자가 있.. 2021. 12. 21.
메모리 할당 기법, 페이징 메모리 관리 프로세스의 수행을 위해서 메인 메모리에 파일들을 적재해야 합니다. 이를 위한 기법들이 존재하고 각 방법들의 장단점이 존재합니다. 프로세스의 실행을 위해 메모리에는 연산자와 피연산자를 적재하고 필요에 따라 보조 저장장치에서 불러오기도 합니다. 주소 공간 현재 대부분의 운영체제에서 인식하는 메모리는 선형적이지만 실제 메모리 상에서는 전혀 다르게 할당되어 있습니다. 메모리 관리 장치(MMU)에 의해 가상 논리 주소와 물리 주소 간에 변환을 수행합니다. 단편화 메모리 할당과 제거가 일어나다 보면 메모리 공간들이 여러 작은 조각들로 나뉠 가능성이 높아집니다. 이 작은 공간들을 모으면 하나의 큰 메모리가 되어 사용할 수 있지만 나뉘게 되면 버려지는 공간이 됩니다. 외부 단편화 선형적으로 프로세스에게 필.. 2021. 12. 12.
뮤텍스와 세마포어, 동기화 문제 해결 도구 동기화 도구 필요성과 이해 동기화 문제 프로세스가 공유하는 데이터를 병렬로 처리하게 될 때 문제가 발생할 수 있습니다. 실행 순서가 뒤바뀌거나 다른 프로세스가 한번 처리될 때 2번이 처리되는 순간 결과는 완전히 달라집니다. 이런 경쟁 상황을 막기 위해 프로세스 간 동기화가 필요합니다. 임계 구역 문제 프로세스 처리 루틴에는 임계 구역이라는 부분을 가지고 있습니다. 적어도 하나 이상의 프로세스와 공유 데이터를 접근 또는 갱신합니다. 임계 구역에서는 동시에 두 개 이상의 프로세스가 실행되지 못해야 합니다. 각 프로세스들이 진입 요청을 하고 임계 구역에 진입을 해야 합니다. 임계 구역에 대한 해결 조건 상호 배제 진행 한정된 대기 상호 배제, 한 프로세스가 자신의 임계 구역에서 실행 시 다른 프로세스는 그 자.. 2021. 11. 14.
운영체제 다중처리 실시간 CPU 스케줄링 (OS scheduling 2) 다중처리 스케줄링 다중처리가 가능한 CPU의 경우 단일처리와 다르게 스케줄링 알고리즘의 보완이 필요합니다. 프로세스 큐의 부하 공유가 필요합니다. 다중 처리를 위해 대칭 다중처리가 일반적이고 그중에서 공통 준비 큐, 각각의 준비 큐를 할 수 있는 두 가지 방법이 존재합니다. 각 전략별 중점은 공통 준비 큐의 경우 경쟁 조건을 방지해야 합니다. 프로세서간 동일한 스레드를 스케줄 해서는 안됩니다. 코어당 실행 큐의 경우 부하를 적절히 나눠야 합니다. 대부분의 운영체제, cpu들은 대칭 다중 처리(SMP, symmetric multiprocessing)를 지원합니다. 로드 밸런싱 Load balancing 다중 처리기에서는 부하를 처리기마다 균등하게 배분하는 것이 문제입니다. 자칫하면 어떤 처리기는 놀게 되고.. 2021. 10. 17.
단일처리 CPU 스케줄링 개념과 종류 (OS Scheduling 1) 스케줄링 다중 프로세스 처리를 위해 꼭 필요한 기본 개념입니다. 여기서는 단일처리의 경우 스케줄링 개념을 설명합니다. 스케줄링은 CPU를 프로세스들이 번갈아면서 좀 더 효율적으로 동작하게끔 합니다. 스케줄링의 목적은 CPU의 이용을 최대화 하는데 있습니다. 코어는 하나의 프로세스만 처리하는 것이 당연한 일입니다. (CMT 제외 ,CMT 칩 수준 스레딩 : 코어당 여러개의 스레드를 두어 메모리 스톨로 인한 이용률 저하를 막는데 있음) 그런데 프로세스가 I/O 요청으로 대기하고 있다면 CPU는 그저 쉬게 됩니다. 이는 성능에 있어서, 효율에 있어서 좋지 않습니다. 다른 밀려있는 수많은 프로세스를 수행하지 못하고 낭비됩니다. 때문에 스케줄링 작업을 하여 이를 방지합니다. CPU, I/O 버스트 CPU 스케줄링.. 2021. 10. 8.
스레드 Thread 현대의 프로세서들은 보통 다중 스레드를 지원합니다. 프로세서의 이용률을 높이기 위해 병렬 처리의 기회를 잡는 것인데 커널 수준의 스레드와 사용자 수준의 스레드로 나뉩니다. 스레드에 대한 기초와 개념에 대해서 설명합니다. 스레드 TRHEAD 스레드는 프로세서에서 아주 작은 단위이며 프로세스 실행 흐름에 아주 작은 단위이기도 합니다. 스레드의 구성은 TID, PC, 레지스터, 스택을 가집니다. 스레드는 단일, 다중 스레드일 수 있으며 단일의 경우 하나의 코어와 같습니다. 다만 뒤에서 설명하겠지만 사용자 수준에서 다중 스레드는 구현할 수 있습니다. 스레드를 이용하여 하나의 응용프로그램이 여러 가지 작업을 할 수 있도록 돕습니다. 다중 스레드의 경우 어느 정도 오버헤드를 감수해야 합니다. 그럼에도 다중 스레드는.. 2021. 9. 5.
반응형