OS
-
[OS] 세마포어(Semaphore)와 뮤텍스(Mutex)의 차이OS 2020. 7. 6. 15:35
세마포어의 정의 공유된 자원의 데이터를 여러 프로세스나 스레드가 접근하는 것을 제어하는 방법 즉, 병행처리를 위한 동기화 기법 세마포어 동작 원리 semWait 연산 세마포어 값을 감소시킴 값이 음수가 아니면 프로세스는 계속 수행 값이 음수가 되면 semWait을 호출한 프로세스는 블록됨 semSignal 연산 세마포어 값을 증가시킴 값이 양수가 아니면(0 또는 음수) semWait연산에 의해 블록된 프로세스를 깨움 세마포어의 종류 카운팅 세마포어(Counting Semaphore) 동시에 사용가능한 자원에 대해 사용 임계 영역 안에 스레드나 프로세스가 들어오면 카운트를 증가시켜 일정 숫자만큼의 스레드만 사용하게함 이진 세마포어(Binary Semarphore) 값으로 0 또는 1만 가질 수 있음 뮤텍스..
-
[OS] 교착상태(Dead Lock)OS 2020. 7. 5. 20:56
프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로 교착 상태라고도 함 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 발생 조건 교착 상태는 4가지 조건이 동시에 성립 할 때 발생 상호 배제(Mutual Exclusion) : 한 자원은 한 번에 한 프로세스만 사용할 수 있어야함 점유 대기(Hold and Wait) : 프로세스 자원을 가진 채 다른 자원을 기다릴 수 있음 비선점(No Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 순환 대기(Circular Wait) : 프로세스의 집합에서 각 프로세스는 순환적으로 다음 프로세스가 필요로하는 자원을 가지고 있음 해결 방법 예방(Prevention) : 4가지 발생 조건이 하나라도..
-
[OS] 스케줄러(Scheduler)란?OS 2020. 6. 19. 11:03
Ready Queue에 존재하는 프로세스들을 특정한 우선순위를 기반으로 CPU를 할당받게 하는 역할 프로세스가 생성되어 완료될때까지 프로세스는 여러 종류의 스케줄링 과정을 거침 프로세스를 스케줄링하기 위한 큐의 종류 Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당 받기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스 집합 스케줄러의 종류 장기 스케줄러 - 어떤 프로세스를 Ready Queue에 삽입할지 결정 - 메모리와 디스크 사이의 스케줄링을 담당 - 프로세스에 메모리를 할당 - 메모리에 동시에 올라가 있는 프로세스의 수를 조절 - 프로세스의 상태[new -> re..
-
[OS] Process와 ThreadOS 2020. 6. 17. 21:06
프로세스 메모리에 적재되어 실행되고 있는 프로그램 각각 별도의 독립적인 주소공간을 할당 Code : 코드 자체를 구성하는 메모리 영역 Data : 전역 변수, 정적 변수, 배열 등 Heap : 동적 할당시 사용 Stack : 지역 변수, 매개 변수, 리턴 값 스레드 프로세스 안에서 실행되는 여러 흐름 단위 프로세스가 할당받은 자원을 이용 다른 스레드와 공간, 자원을 공유 PCB Process Controll Block의 약어로 프로세스 제어 블록 프로세스에 대한 중요한 정보를 저장하고 있음 프로세스 생성시에 만들어지며 주기억장치에 유지됨 컨텍스트 전환시에 다른 프로세스를 처리해야할 경우 PCB에 현재 상태를 저장함으로써 나중에 작업 상태를 불러와 작업 재개가 가능 PID, 상태, Program Count..
-
[OS] 운영체제란?OS 2020. 6. 16. 11:34
운영체제란? 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공 운영체제의 종류로는 Windows, UNIX, LINUX, MacOS 등이 있음 운영체제의 목적 처리능력 향상 사용 가능도 향상 신뢰도 향상 반환시간 단축 운영체제의 기능 프로세서, 기억장치, 입출력 장치, 파일 등의 자원을 관리 자원을 효율적을 관리하기 위해 자원의 스케줄링 기능을 제공 사용자와 시스템간의 편리한 인터페이스 제공 시스템의 각종 하드웨어와 네트워크를 관리, 제어 데이터를 관리하고 데이터 및 자원의 공유 기능을 제공 시스템의 ..