운영체제는 Operation System 이하OS라고 부른다컴퓨터엔 컴퓨터 하드웨어로 구성된 시스템 자원이 있다 \- CPU(중앙처리장치), Memory(DRAM, RAM) \- I/O Devices(입출력장치) \- 저장매체(SSD, HDD) CPU는 각 프로
프로그램은 소프트웨어를 의미하고 소프트웨어는 운영체제와 응용프로그램(엑셀, 워드 등)같은 것들을 말한다.응용프로그램은 PC, Mobile에서 실행된다운영체제는 응용프로그램의 권한을 관리하고, 실행시킨다.운영체제는 응용프로그램을 사용하는 사용자도 관리응용 프로그램은 누구
응용 프로그램은 자신이 실행되기 위해 필요한 메모리, CPU, IO Devices를 운영체제에 요청하고 운영체제는 허가/거부/제어 함위키디피아출처: 위키디피아운영체제는 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공 -> 쉘 프로그램쉘은 터미널 환
출처: 위키디피아CPU는 권한 모드를 가지고 있음사용자 모드(user mode by applications)응용 프로그램이 사용커널 모드(kernel mode by OS)OS가 사용특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드응용프로그램이
컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행하는 방식 batch processing이라고 부름한 프로그램 실행시간이 오래걸려 다음 프로그램을 무작정 기다려야 함 ex) 음악을 들으면서 문서 작성, 여러 사용자가 동시에 하나의 컴퓨터를 사용다중 사용
최대한 CPU를 많이 활용하도록 하는 시스템시간 대비 CPU 활용도를 높임멀티 프로그래밍은 멀티 태스킹을 구현하는 스케쥴링의 한 방식
실행 중인 프로그램은 프로세스라고 한다프로세스: 메모리에 올려져서, 실행 중인 프로그램코드 이미지(바이너리): 실행 파일, 예: ELF format그렇지만 응용 프로그램과 프로세스는 다르다응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음여러 개의 프로세스(프로그램
출처: 위키디피아멀티 프로그래밍: CPU 활용도를 극대화 하는 스케쥴링 알고리즘Wait: 간단히 설명하자면 저장매체로부터 파일 읽기를 기다리는 시간출처: http://i-bada.blogspot.com/2012/04/blog-post_2886.htmlrunni
선점형 스케쥴러(Preemptive Scheduling)하나의 프로세스가 다른 프로세스 대신 프로세서(CPU)를 차지할 수 있음프로세스 running중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능선점형 스케쥴러가 후반에 나옴, 중간에 프로세스를 중지시킨다는
CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려서 처리하는 기술프로세스 running중에 스케쥴러가 중단시키고 다른 프로세스로 교체하기 위해 프로세스 교체를 위해 스케쥴러 코드가 실행되어야
이상 계산을 실행시타이머 인터럽트선점형 스케쥴러를 위해 필요하드웨어로부터 일정 시간마다 타이머 인터럽트를 운영체제에 알려줌입출력 인터럽트주로 프로그램 내부에서 발생, 소프트웨어 인터럽트프로그램 내부에서 잘못된 명령, 잘못된 데이터 사용시 발생불가능한 계산요구사용자 모드
출처: https://bnzn2426.tistory.com/59text(CODE):코드data: 변수/초기화된 데이터stack: 임시 데이터(함수 호출, 로컬 변수등)heap: 코드에서 동적으로 만들어지는 데이터, malloc, calloc등으로 배열의 크기가
프로그램 실행중 인터럽트 요청이 들어오면 프로그램을 중단하고 다시 돌아올때 어디까지 진행됐는지 주소를 담는 것레지스터의 데이터를 임시로 저장하고 쌓인 데이터의 마지막 위치를 알 수 가르킴Process IDRegister 값(PC, SP등)Scheduling Info(P
1\. 실행 중지할 프로세스 정보를 해당 프로세스 PCB에 업데이트해서 메인 메모리에 저장2\. 다음 실행할 프로세스 정보를 메인 메모리에 있는 PCB정보(PC, SP)를 CPU 레지스터에 넣고 실행매우 짧은 시간 단위로 프로세스 스위칭이 일어남어셈블리어로 컨텍스트 스
프로세스들은 다른 프로세스의 공간 접근 불가프로세스간 통신 방법을 제공IPC: InterProcess Communication성능을 높이기 위해 여러 프로세스를 동시에 실행이 과정에서 프로세스 사이에 상태 확인, 데이터 송수신이 필요복잡한 연산을 동시에 실행하고 합치기
출처: https://blog.naver.com/akj61300/80130589983기본 파이프는 단방향 통신fork()로 자식 프로세스 만들었을 때, 부모와 자식간의 통신출처:https://heo-seongil.tistory.com/73A프로세스B프
유닉스 시스템에서 30년 이상 사용된 전통적 기법커널 또는 프로세스에서 이벤트 발생시 다른 프로세스에 발생 사실을 전달해주는 기법프로세스 관련 코드에 시그널 핸들러를 등록하고 해당 시그널 처리 실행SIGKILL: 프로세스를 죽임(슈퍼관리자만 사용하는 시그널, 어떠한 경
프로세스 간에는 각 프로세스 데이터 접근이 불가하나의 프로세스안에서 여러개의 스레드 생성이 가능스레드는 동시에 실행이 가능하고 프로세스 안에서 여러개가 생성되었기 때문에 프로세스의 데이터에 모든 스레드가 접근 가능함소프트웨어 병행 작업 처리를 위해 멀티스레드 사용멀티
스레드는 프로세스 안에서 쪼개서 만들었기 때문에 데이터를 공유함따라서 동일한 자원에 접근하면 동기화 문제가 발생동일한 자원을 여러 스레드가 동시에 수정하는 문제Mutual exclusion(상호 배제)쓰레드는 프로세스 모든 데이터에 접근 가능하므로 한 데이터에 여러 스
임계구역에 하나의 스레드만 들어갈 수 있음임계구역에 여러 스레드가 들어갈 수 있음counter를 통해 동시에 접근할 수 있는 스레드 수를 설정P: 검사(임계영역에 들어갈 때)V: 증가(임계영역에 나올 때)S: 세마포어 값(초기값만큼 스레드가 동시에 임계영역 접근 가능)
무한 대기 상태: 두개 이상의 작업이 서로 끝날때까지 기다린채 아무 작업도 실행하지 않고 있는 상태상호배제(Mutual exclusion): 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권 요구점유대기(Hold and wait): 프로세스가 할당된 자원을 가진 상
프로세스 우선순위가 낮아, 우선순위가 높은 프로세스만 실행되다가 장시간 실행되지 못하고 있는 상태프로세스 우선순위를 주기적으로 변경해 높은 우선순위를 갖는 기회를 부여장시간 대기하고 있는 낮은 우선순위의 프로세스 우선순위 변경우선순위 기반 스케쥴러 말고 FIFO기반 요