Computer Science/Operating System
-
6. 메모리 주소와 바인딩Computer Science/Operating System 2022. 3. 29. 00:58
메모리 주소 - 논리 주소와 물리 주소 논리 주소는 프로세스마다 독립적으로 가지는 가상 메모리의 주소로 각 프로세스마다 0번지부터 시작된다. 물리 주소는 메모리에 실제 프로세스가 적재되는 절대적 위치를 말한다. 참고로, CPU는 물리적 주소가 아닌 논리적 주소를 확인한다. CPU가 기계어를 실행하면서 코드의 주소들은 논리적 주소이므로 메모리에 접근을 할때마다 MMU를 통해 주소 변환을 하여 메모리 접근을 해야한다. MMU(Memory Management Unit) : 논리적 주소를 물리적 주소로 매핑 해주는 하드웨어 사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 논리 주소값에 대해 relocation register(재할당 레지스터) 값을 더한다. 이때, 논리적 주소가 limit register ..
-
5. 교착상태(Deadlock)Computer Science/Operating System 2022. 3. 21. 18:03
교착 상태 일련의 프로세스들이 각자가 가진 자원은 점유하고 상대방의 자원을 기다리면서 각 프로세스가 아무 작업도 수행할 수 없는 상태를 말한다. 여기서의 자원은 하드웨어 및 소프트웨어를 포함하는데 가령, I/O 장치, CPU cycle, 메모리 공간과 같은 것이다. 교착상태 발생의 4가지 조건 - 상호 배제 : 매 순간 하나의 프로세스만이 자원을 사용할 수 있어야 한다. - 비선점 : 프로세스는 자원을 스스로 내어놓지만 강제로 빼앗기지는 않아야 한다. - 점유와 대기 : 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유하고 있는 자원은 놓지 않고 계속 갖고 있다. - 원형 대기 : 자원을 기다리는 프로세스 간 사이클이 형성되어야 한다. 교착상태 처리 방법 - 교착상태 예방(Prevention) 자원할당..
-
4. 프로세스 병행 제어와 동기화Computer Science/Operating System 2022. 3. 13. 18:01
메모리 또는 디스크에서 데이터를 가져와 CPU에서 여러 프로세스들이 동시에 데이터를 처리해야 하는 경우. 즉, 하나의 공유 데이터를 여럿이 동시에 접근할 때 생기는 것을 "경쟁 상태(race condition)"라고 한다. 이로인해 데이터 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라져 의도치 않은 결과가 발생할 수 있다. 이러한 경쟁 상태를 막기 위해 병행 프로세스는 동기화되어야 한다. 프로세스 동기화는 쉽게 말해 여러 개의 프로세스가 공유하고 있는 자원에 대해서 프로세스마다 순서를 정해 자원의 일관성을 유지해주는 것이다. 그렇다면 경쟁상태가 발생하는 여러 이유와 발생하지 않는 경우에 대해 알아보자. 경쟁상태가 발생하는 경우 - 커널 수행 중 인터럽트 발생 시 커널모드 실행 중 인터..
-
3. CPU 스케줄링Computer Science/Operating System 2022. 3. 7. 03:21
이전 "프로세스 관리" 편에서 다루었던 프로세스 상태는 CPU 스케줄링과 관련이 있다. 2. 프로세스 관리 하드디스크와 같은 파일 시스템에 있는 프로그램이 먼저 프로세스가 되기까지의 과정을 살펴본 후 프로세스에 대한 전반적인 흐름을 확인해보려 한다. 프로그램 실행 - 파일 시스템에 저장되 6ro-29.tistory.com CPU 스케줄링과 디스패처 그렇다면, 아래처럼 프로세스의 전반적인 작업 상태를 관리하고 어떠한 프로세스에게 CPU를 할당해줄지를 결정해주는 CPU 스케줄링이 필요한 이유는 무엇인가? 이를 알기위해 CPU, I/O 버스트에 대해 알아보자. CPU 버스트 : CPU를 통해 프로세스의 기계어를 실행 중인 주기 I/O 버스트 : 입력, 출력이 이뤄지는 주기 CPU가 사용되는 시간 단위가 길다면..
-
2. 프로세스 관리Computer Science/Operating System 2022. 2. 28. 02:41
하드디스크와 같은 파일 시스템에 있는 프로그램이 먼저 프로세스가 되기까지의 과정을 살펴본 후 프로세스에 대한 전반적인 흐름을 확인해보려 한다. 프로그램 실행 - 파일 시스템에 저장되어 있는 실행 파일을 실행시키면 메모리에 적재되어 프로세스가 된다. - 메모리에 적재되기 이전에 실행 파일마다 개별적인 가상 메모리가 존재하며 필요한 페이지만 물리적 메모리에 적재되며, 올라가지 않은 페이지는 스왑 영역에 올라간다. 이때, 각 프로세스별 가상 메모리는 0번지부터 시작하고 실제 물리 메모리에 쌓이는 주소와는 다른데, 가상 메모리의 논리적 주소에서 물리 주소로 변환하는 과정을 거친다. 스왑 영역이란 쫓겨난 프로세스가 저장장치의 특별한 공간을 모아두는데 이러한 영역을 의미하며, 스왑 영역에서 메모리로 데이터를 가져오..
-
1. 운영체제와 컴퓨터 시스템의 구조Computer Science/Operating System 2022. 2. 21. 13:56
운영체제 사용자 및 응용 프로그램과 하드웨어 사이에서 컴퓨터 시스템의 자원을 효율적으로 관리하기 위한 소프트웨어로써, 부팅 시 메모리에 가장 처음 적재된다. 운영체제는 아래와 같이 GUI, 시스템 호출, 커널, 드라이버로 구성되어 있으며 목적은 다음과 같다. 사용자, 응용 프로그램과 관련된 자원 보호 컴퓨터 시스템을 편리하게 사용할 수 있는 인터페이스 제공 효율적인 자원 관리 여기서 언급되는 효율성이란 주어진 하드웨어 자원으로 최대한의 성능을 낸다는 점이며, 특정 사용자 및 응용 프로그램에 대해 지나친 불이익이 발생하지 않도록 형평성의 문제도 해결해준다. 현대의 일반적인 처리 방식인 시분할 시스템으로 실행중인 프로세스에 각각 일정 시간 CPU를 번갈아 할당해줌으로써 적절히 분배하여 공평하게 쓸 수 있다...