메인 메모리란 ? 프로그램이 올라가는 거대한 바이트 배열 배열의 방들에는 주소를 통해 접근할 수 있음 메인 메모리에 올라간 프로그램은 프로세스가 됨 32 bit, 64 bit 아키텍쳐 운영체제의 아키텍쳐는 메인 메모리의 주소 길이에 의해 결정 멀티 프로세서에서의 메모리 접근 관리 각 프로세스는 자신만의 메모리 공간을 가지고 있어야 함 자신만의 메모리 공간을 어떻게 지정할까? 베이스 레지스터(Base Register) 해당 프로세스의 메모리 시작 위치를 저장한 레지스터 한계 레지스터(Limit Register) 해당 프로세스가 사용할 수 있는 최대 메모리 크기를 저장한 레지스터 즉, 멀티프로세서에서는 베이스 레지스터, 한계 레지스터를 통해 메모리 접근을 통제 운영체제의 주소 체계 논리적 주소(Logical..
클라이언트에게 수 많은 요청을 받는 웹 서버가 존재할 때, 스레드라는 개념이 없으면 발생하는 문제 요청이 들어올 때 마다 새로운 프로세스를 생성해서 작업해야 함, 이는 자원, 시간 소요가 매우 크고 프로세스 간 컨텍스트 스위칭은 오버헤드가 큰 작업 IPC를 활용해야 하는데 이 또한 오버헤드가 큼 멀티프로세싱의 무거움을 해소하기 위해 탄생한 개념 = 스레드 스레드 사용 이유 프로세스에 비해 메모리를 적게 사용 스레드 컨텍스트 스위칭이 프로세스 컨텍스트 스위칭보다 빠름 스레드 간에는 메모리를 공유하므로 통신을 위해 IPC를 사용하지 않아도 됨 스레드란 하나의 프로세스에서 실행 흐름의 단위 하나의 프로세스 내에서 스레드 간에 공유하는 것 코드 영역, 데이터 영역, 힙 영역 하나의 프로세스 내에서 스레드 간에 ..
데드락(Deadlock) == 교착상태 리소스에 대한 요청이 뒤엉킨 상태 서로 다른 프로세스가, 서로 점유하고 있는 자원을 기다릴 때 무한 대기에 빠지는 상황 데드락 발생 조건 아래 4가지 조건이 동시에 성립해야 발생함 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있음 점유 대기 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점 프로세스가 작업을 마친 후 자원을 자발적으로 반환할 때까지 기다림 순환 대기 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건 데드락 해결 방법 예방(Prevention) 위 발생 조건 4가지 중 하나를 방지하여 데드락 발생을 예방하는 방법 상호 배제 방지 점유 대기 방지 비선점 방지 순환 대기 방지 위 예방 방법은 ..
프로세스 동기화 💡 여러 개의 프로세스가 동시에 실행될 때, 서로가 영향을 주지 않도록 프로세스 간의 상호작용을 조절하는 것을 프로세스 동기화라고 함 여러 프로세스가 서로 협력해 공유 자원을 사용하는 상황에서 경쟁(race condition)이 발생하면 공유 자원의 신뢰성이떨어짐 Critical Section(임계 영역) 공유 데이터를 접근하는 코드 부분을 의미 하나의 프로세스만 사용할 수 있는 구역 공유되는 자원에서 문제가 발생하지 않도록 독점 보장 Mutual Exclusion(상호 배제) Progress(진행) Bounded Waiting(한정 대기) 스핀락(Spinlock) 특정한 자료구조를 획득(lock), 또는 해제(unlock) 함으로써 공유 데이터에 대한 접근 권한을 관리하는 방식 권한을 ..
프로세스의 개념 실행 중인 프로그램 비동기적 행위 실행 중인 프로시저 실행 중인 프로시저의 제어 추적 운영체제에 들어 있는 프로세스 제어 블록 프로세서에 할당하여 실행할 수 있는 개체 디스패치가 가능한 대상 💡 프로시저 : 루틴, 서브루틴, 함수와 같은 뜻으로 사용되며, 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램의 일부이다. 또는 어떤 행동을 수행하기 위한 일련의 작업 순서를 말한다. 💡 디스패치 : 준비 리스트의 맨 앞에 있던 프로세스가 CPU를 점유하게 되는 것, 즉 준비 상태에서 실행 상태로 바뀌는 것을 디스패치라고 한다. 💡 프로세스 제어 블록(Process Control Block, PCB) : 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조. 운영체제가..
1강 운영체제가 뭐길래? 정보란건 뭘까? 정보의 최소 단위 : bit(Binary digit) 정보의 처리 : 정보의 상태 변환(0에서 1로, 1에서 0으로) 부울 대수(Boolean Algebra) : NOT, AND, OR 논리 게이트 : NOT, AND, OR, XOR, NAND, NOR 논리 회로 : IC, LCI, VLCI, ULCI, SoC 정보의 저장과 전송 : 플립-플롭, 데이터 버스, RF 무어의 법칙 황의 법칙 그래서, 컴퓨터가 정보를 어떻게 처리하죠? 덧셈은 ? 반가산기, 전가산기 뺄셈은 ? 2의 보수 표현법 곱셈과 나눗셈은 ? 덧셈과 뺄셈의 반복 → 단일 회로로 구현 가능 실수 연산은 ? 부동 소수점 표현법, 별도의 회로로 구성하면 GPU? 함수는 ? GOTO 그럼, 컴퓨터는 만능인..