본문 바로가기

운영체제

[Operating System] - 인터럽트 종류 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 인터럽트 종류 내부 인터럽트 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터 사용시 발생 0으로 나눴을 때 사용자 모드에서 허용되지 않은 명령 또는 공간 접근시 계산 결과가 Overflow/Underflow 날 때 외부 인터럽트 주로 하드웨어에서 발생되는 이벤트 (프로그램 외부) 전원 이상 기계 문제 키보드 등 IO 관련 이벤트 Timer 이벤트 내부 인터럽트는 주로 프로그램 내부에서 발생 => 소프트웨어 인터럽트 외부 인터럽트는 주로 하드웨어에서 발생 => 하드웨어 인터럽트 주요 인터럽트 계산하는 코드에서 0으로 나누는 코드 실행시 (Divide-by-Zero Interrupt) 타이머 인터럽트 입출력(IO) 인터럽.. 더보기
[Operating System] - 인터럽트 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려서 처리하는 기술 인터럽트가 필요한 이유 선점형 스케줄러 구현 IO Device와의 커뮤니케이션 예외 상황 핸들링 선점형 스케줄러 구현 프로세스 running중에 스케줄러가 이를 중단시키고, 다른 프로세스로 교체하기 위해 현재 프로세스 실행을 중단시킴 그러기 위해선 스케줄러 코드가 실행이 되서 현재 프로세스 실행을 중지시켜야 함 IO Device와의 커뮤니케이션 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야 한다 block state 에서 ready state 로 예외 상황 핸들링 C.. 더보기
[Operating System] - 선점형과 비선점형 스케줄러 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 선점형과 비선점형 스케줄러 선점형 스케줄러(Preemptive Scheduling) 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음 비선점형 스케줄러(Non-preemptive Scheduling) 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 비선점형 스케줄러 -> 선점형 스케줄러 로 넘어가고 있는 추세 선점형과 비선점형 스케줄러 차이 비선점형 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을 때만 다른 프로세스로 교체가능 선점형 프로세스 running 중에 스케줄러가 이를 중단시키고, 다른 프로세스로 교체 가능 요약하자면, 스케줄러가 프로세스를 점.. 더보기
[Operating System] - 프로세스 상태와 스케줄링 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 멀티 프로그래밍과 Wait 멀티 프로그래밍: CPU 활용도를 극대화 하는 스케줄링 알고리즘 Wait : 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정 프로세스 상태 running state : 현재 CPU에서 실행 상태 ready state : CPU에서 실행 가능 상태(실행 대기 상태) block state : 특정 이벤트 발생 대기 상태 ex- 프린팅 끝~~ 프로세스 상태간 관계 실행 상태인 프로세스를 대기 상태로 보낸 후 실행 가능 상태(실행 대기 상태)에 있는 프로세스들 중 하나를 스케줄러가 고르고 그 골라진 프로세스가 실행(running)상태가 되고 block에 있던 프로세스가 실행 가능 상태로 바뀐다. .. 더보기
[Operating System] - 스케쥴링 알고리즘 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 프로세스(process)란? 실행 중인 프로그램 메모리에 올려져서 실행중인 프로그램 작업, task, job 이라는 용어와 혼용해서 사용. 응용 프로그램은 프로세스가 아니다 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음 스케줄러 프로세스 실행을 관리! 스케줄링 알고리즘의 목표 시분할 시스템의 경우 -> 프로세스 응답 시간을 가능한 짧게 멀티 프로그래밍의 경우 -> CPU활용도를 최대로 높여서 프로세스를 빨리 실행 종류 FIFO 스케줄러 최단 작업 우선(SJF) 스케줄러 우선순위 기반 스케줄러 Round Robin 스케줄러 FI.. 더보기
[Operating System] - 프로세스 스케줄링(멀티 프로그래밍) 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 단번에 이해하긴 어렵기 때문에 다양한 측면에서 접근하여 이해도를 높이자 멀티 프로그래밍 최대한 CPU를 많이 활용하도록 하는 시스템 시간 대비 CPU 활용도를 높이자 응용 프로그램을 짧은 시간 안에 실행 완료를 시킬 수 있음 온전히 CPU를 쓰기보다, 다른 작업을 중간에 필요로 하는 경우가 많다. 응용 프로그램이 실행되다가 파일을 읽는다던지 응용 프로그램이 실행되다가 프린팅을 한다던지 등.. 정리 멀티 프로그래밍의 핵심 여러 응용 프로그램 실행을 가능케 함 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함 CPU를 쉬지 않고 응용 프로그램을 실행토록 해서, 짧은 시간 안에 응용 프로그램이 실행완료될 수 있도록 함 컴퓨터 응.. 더보기
[Operating System] - 프로세스 스케줄링 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. 프로세스 = 응용 프로그램 스케줄링 = 시간 순서에 따라 CPU에 배치하는 방법 배치 처리 시스템 일괄 처리, 배치 처리, batch processing이라고 부른다 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행하는 방식 한번에 등록된 여러 프로그램을 순차적으로 실행 가능 자료구조의 queue와 비슷 FIFO : First In First Out(먼저 들어온 데이터가 먼저 나간다) 문제점 동시성의 문제 두 개 이상의 프로그램을 동시에 실행할수가 없다 첫번째 애플리케이션의 동작시간이 오래걸리면 두번째 애플리케이션은 실행시간의 길이와 상관없이 무조건 기다려야 한다 이러한 문제들로 인해 멀티 프로그래밍 / 시분.. 더보기
[Operating System] - 사용자와 커널 모드 패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다. CPU Protection Rings CPU도 권한 모드가 있다 사용자 모드 (user mode by applications) 응용 프로그램이 사용 커널 모드 (kernel mode by OS) OS가 CPU를 사용할때 쓰는 모드 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근 가능모드 실질적으로는 ring0과 ring3만 사용한다고 함. ring3 = 사용자, ring0 = 커널 사용자 모드와 커널 모드 응용 프로그램이 함부로 전체 컴퓨터 시스템에 영향을 끼칠수 없음 영향을 끼치려면? 악성 코드가 들어있으면 가능 응용 프로그램과 운영체제 위의 그림처럼 우리가 만들고 사용하는 프로그램은 가장 윗 단. 시스템콜은 커널 .. 더보기