CS 지식/운영체제
-
1. 운영체제 개요CS 지식/운영체제 2020. 11. 7. 23:58
운영체재 개요 컴퓨터 시스템의 자원을 효율적으로 관리 (자원 관리자) 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 형평성 있는 자원 분배 좁은 의미의 운영체제 커널(kernel) 운영체제의 핵심 부분으로 메모리에 상주하는 부분 넓은 의미의 운영체제 커널 뿐 아니라 각종 시스템 유틸리티를 포함한 개념 운영체제 분류 동시 작업 여부 다중 작업(multi tasking) UNIX, MS Windows 등에서 한 명령 수행이 끝나기 전에 다른 명령 or 프로그램 수행 사용자의 수 단일 사용자(single user) MS-DOS, MS Windows 다중 사용자(multi user) UNIX, NT server 처리 방식 일괄 처리(batch processing) 작업 요청의 일정량을 모아서 한꺼번에 처리..
-
뮤텍스와 세마포어CS 지식/운영체제 2020. 10. 21. 19:39
뮤텍스와 세마포어 2020/08/17 - [CS 기초 지식] - 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 임계 구역과 뮤텍스, 세마포어 임계 영역 한개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록 쓰레드 안에 있는 코드 블록이 임계 영역이 된다. 따라서, 문제가 발 zin0-0.tistory.com 뮤텍스 쓰레드의 동시 접근을 허용하지 않고, Mutex를 이용해서 특정 변수로 접근하는 쓰레드를 차단하면, 나머지 쓰레드는 대기줄에 기다리게하는 기법 뮤텍스를 사용한 쓰레드가 뮤텍스를 반환하면, 대기줄에 있는 순서대로 쓰레드가 뮤텍스를 생성해서 잠금 ~> 순환 뮤텍스 잠금 후에 해제를 하지 않으면, 잠금 함수는 블로킹 상태에서 빠져..
-
Deadlock & StarvationCS 지식/운영체제 2020. 10. 21. 19:38
Deadlock과 Starvation 데드락(Deadlock, 교착상태) 둘 이상의 쓰레드가 lock 획득을 기다리는데, 이 lock을 잡고있는 쓰레드도 똑같이 다른 lock을 기다리며 서로 블록상태에 놓이는 것을 의미한다. 즉 무한 대기상태에 빠지는 것을 교착상태라고 한다. 교착 상태 발생의 필요 충분 조건 상호배제 - 한번에 한개의 프로세스만 공유자원 사용 점유와 대기 - 최소 하나 자원을 점유하고 다른 프로세스에 할당되어 사용되는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재 비선점 - 다른 프로세스에 할당된 자원은 사용이 끝나기 전까지 뺏을 수 없음 환형 대기 - 공유자원과 사용하기 위해 대기하는 프로세스가 원형으로 구성되어 대기해야함 예방 기법 위의 4가지 필요충분 조건을 부정하면 된다...
-
프로세스와 스레드CS 지식/운영체제 2020. 10. 21. 19:35
프로세스와 스레드 2020/08/17 - [CS 기초 지식] - 프로세스와 스레드 프로세스와 스레드 프로세스와 스레드 프로세스 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스 OS로부터 시스템 자원 zin0-0.tistory.com 저번에 정리한 내용이 부족한 것 같아서 추가적으로 정리해본다. 프로세스 보조 기억장치에 기억되는 프로그램은 실행되기를 기다리는 명령어와 정적 데이터의 묶음이다. 이 프로그램의 명령어와 정적 데이터가 메모리에 적재되면 프로세스가 된다. 즉, 실행 중인 프로그램이란 의미가 된다. 다른 말로 풀면 OS에게 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스, OS로부터 시스템 자원을 할당..
-
멀티 스레드의 임계 구역과 뮤텍스, 세마포어CS 지식/운영체제 2020. 8. 17. 11:37
임계 구역과 뮤텍스, 세마포어 임계 영역 한개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록 쓰레드 안에 있는 코드 블록이 임계 영역이 된다. 따라서, 문제가 발생하지 않게 독점을 보장해줘야 함. (Lock, 동기화) 동기화 기법 뮤텍스(Mutex => Mutual Exclusion) 쓰레드의 동시 접근을 허용하지 않음 Mutex를 이용해서 특정 변수로 접근하는 쓰레드를 차단하면, 나머지 쓰레드는 대기줄에서 기다린다. 뮤텍스를 사용한 쓰레드가 뮤텍스를 반환하면, 대기줄에 있는 순서대로 쓰레드가 변수가 접근 뮤텍스 생성, 삭제, 잠금, 잠금해제 함수가 있음 단, 뮤텍스 잠금 후 해제를 하지 않으면, 잠금 함수는 블로킹 상태에 빠져 못나감 이 상태를 데드락 상태라고 부름 뮤텍스 ..
-
프로세스와 스레드CS 지식/운영체제 2020. 8. 17. 11:33
프로세스와 스레드 프로세스 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스 OS로부터 시스템 자원을 할당받는 작업의 단위 동적 개념으로는 실행된 프로그램을 의미 할당받는 시스템 자원 CPU 시간, 주소 공간, Code, Data, Stack, Heap 구조로 되어있는 독립된 메모리 영역 프로세스는 각각 독립된 메모리 영역을 할당 받는다. 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 직접 접근 불가. 다른 프로세스의 자원에 접근하려면 프로세스 간 통신(IPC)을 사용해야함 ex) 파이프, 파일, 소켓 등 메모리 ..
-
CPU ( 중앙처리장치 )CS 지식/운영체제 2020. 8. 8. 17:30
CPU CPU 작동 순서 Fetch(인출) : 메모리상의 프로그램 카운터가 가리키는 명령어를 CPU로 인출하여 적재. Decode(해석) : 명령어의 해석. 이 단계에서 명령어의 종류와 타겟 등을 판단한다. Execute(실행) : 해석된 명령어에 따라 데이터에 대한 연산을 수행한다. Writeback(쓰기) : 명령어대로 처리 완료된 데이터를 메모리에 기록한다. 레지스터 CPU가 현재 처리하고있는 데이터를 보유 CPU가 현재 처리중인 피연산자 또는 명령어를 보유 레지스터 변화 명령이 들어오면 IR(명령 레지스터)에 저장된다. 축적된 명령을 fetch -> decode -> excute 순으로 실행 fetch에서 명령 레지스터에 저장된 명령어를 PC가 가르키는 위치부터 가져온다. decode 과정에서는 ..