CPU 스케줄러는 준비 큐에 있는 프로세스 중에서 선택하고 CPU 코어를 그 중 하나에 할당한다. 큐는 다양한 방식으로 정렬될 수 있다. CPU 스케줄링 결정은 프로세스가 다음 중 하나의 상태로 전환될 때 발생한다. 1. 실행 중인 상태에서 대기 상태로 전환될 때 2. 실행 중인 상태에서 준비 상태로 전환될 때 3. 대기 상태에서 준비 상태로 전환될 때 4. 종료될 때 실행 중인 상태에서 대기 상태로 전환될 때와 종료될 때는 비선점(nonpreemptive)이다. -> CPU를 안놔줌 running -> ready 일때와 waiting -> ready 일때는 선점(preemptive)이다. -> CPU를 한정된 시간만 사용 공유 데이터에 대한 액세스를 고려해야함 - 경쟁상태 발생 가능 커널 모드에서 선..
운영체제론
대부분의 현대 애플리케이션은 멀티스레드 방식으로 동작한다. 커널은 일반적으로 멀티스레드 방식으로 구현된다. 서버의 경우, 클라이언트로부터 요청이 들어오면 새로운 스레드를 생성해서 해당 요청을 처리하고 서버는 추가적인 요청을 위해 계속 리스닝한다. 스레드끼리는 code, data, files는 공유하고 registers, stack, PC는 독립돼있다 프로세스 생성에 비해 스레드 생성은 가볍다. 코드를 단순화하고 효율성을 높일 수 있다. 멀티스레드 방식의 장점은 다음과 같다. - 응답성 : 프로세스의 일부가 블로킹되어도 계속해서 실행을 지속할 수 있다. - 자원공유 : 스레드는 프로세스의 자원을 공유하기에 공유 메모리 / 메시지 전달보다 쉽게 자원을 공유할 수 있다. - 경제성 : 프로세스 생성보다 스레드..
Direct Communication (직접 통신) 프로세스는 서로를 명시적으로 이름을 지정한다. send(P, message) : 메시지를 프로세스 P에게 보낸다. receive(Q, message) : 메시지를 프로세스 Q에게서 받는다. 통신 링크의 특성 - 링크는 자동으로 설정된다. - 링크는 정확히 하나의 쌍 프로세스와 연관된다. - 각 쌍 사이에는 정확히 하나의 링크가 있다. - 링크는 단방향일 수도 있지만, 일반적으로 양방향이다. Indirect Communication (간접 통신) 메시지는 mailbox(또는 port)에서 직접적으로 보내고 받는다. - 각 mailbox는 고유한 ID를 가진다. - 프로세스는 mailbox를 공유할 때만 통신할 수 있다. 통신 링크의 특성 - 프로세스가 공..
Process Concept 프로세스는 실행 중인 프로그램을 의미하고, 프로세스 실행은 순차적인 방식으로 진행돼야한다. 프로그램 코드(텍스트 영역) : 실행 코드를 포함한다. 현재 활동(PC, 프로세서 레지스터 ..) : 프로세스의 현재 실행 상태를 나타냄 스택 : 일시적인 데이터를 저장함. 함수, 매개변수, 반환주소, 지역 변수 등 데이터 섹션 : 전역 변수를 포함한다. 힙 : 실행 시간에 동적으로 할당되는 메모리를 포함한다. 프로그램은 수동적인 개체, 프로세스는 활성적인 개체. 하나의 프로그램은 여러 개의 프로세스가 될 수 있음. Process State New: 프로세스가 생성 중 Running: 명령이 실행 중 Waiting: 프로세스가 어떤 이벤트가 발생할 때까지 기다림 Ready: 프로세스가 ..
Operation System Services OS: 프로그램 실행을 위한 환경과 프로그램 및 사용자에게 서비스를 제공함. 운영체제 서비스 집합 중 하나는 사용자에게 유용한 기능을 제공함. - 사용자 인터페이스(UI) 거의 모든 운영체제에 존재함 (* CLI, GUI, 터치스크린, batch 등 존재) - 프로그램 실행 시스템은 프로그램을 메모리에 로드하고 실행함, 종료시 정상 종료 또는 비정상 종료시 오류표시를 해야함. - I/O 작업 실행중인 프로그램은 파일이나 I/O 장치를 사용하는 I/O 필요 - 파일 시스템 조작 파일과 디렉토리를 읽고 쓰고 생성, 삭제, 검색, 파일 정보 나열, 권한 관리를 해야함 - 통신 컴퓨터 내(공유메모리) 또는 네트워크(패킷)를 통해 컴퓨터 간 정보 교환 가능 - 오류 ..
Keywords user-mode, kernel-mode, Program Counter Caching, Protection, Security Dual-mode and Multimode Operation Dual-mode operation은 운영 체제와 다른 시스템 구성 요소를 보호할 수 있도록 함. User-mode와 Kernel-mode로 구성되고 하드웨어에서 제공하는 Mode bit로 구현됨. 이러한 모드는 시스템이(CPU가) 사용자 코드 또는 커널 코드를 실행 중인지 구별할 수 있는 기능을 제공함. 특정 명령어들은 권한이 주어지고, 커널 모드에서만 실행 가능함. System call은 모드를 커널 모드로 전환하고 호출이 완료되면 다시 사용자 모드로 되돌아감. 즉, 프로세스가 시스템콜을 커널에 요청하..
keywords interrupt, interrupt vector table, interrupt 아키텍처, polling interrupt system, vector interrupt system, Non-maskable interrupt, maskable interrupt, interrupt chaining dynamic random-access-memory, direct memory access, 다중 프로세서 시스템, 비대칭적 다중 처리, 대칭적 다중 처리, 클러스터 시스템 bootstrap - kernel load - demon Multiprogramming(batch system), Multitasking(Time sharing) 컴퓨터 시스템은 4가지 요소로 나뉜다. Hardware - 기본 ..