[CS / 운영체제] 데드락(DeadLock)
·
Computer Science
데드락 (DeadLock) 시스템의 잘못된 자원 관리로 멀티프로그래밍 환경에서 멈춰버리는 현상 다른 프로세스가 점유하고 있는 자원을 기다리면서 둘 이상의 프로세스가 무한대기에 빠지는 상태 데드락 발생조건 상호배제(Mutual exclusion) : 자원은 한 프로세스에 의해서만 점유가능 점유대기(Hold and wait) : 최소한 하나의 자원을 점유한 상태에서, 다른 프로세스가 점유한 자원을 기다리는 프로세스가 존재해야함 비선점(No preemption) : 다른 프로세스가 점유한 자원은 강제로 빼앗을 수 없음 순환대기(Circular wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음
[CS / 운영체제] 가상메모리(Virtual Memory)
·
Computer Science
가상메모리 (Virtual Memory) 실제 메모리 크기와 상관없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 기법 대표적인 가상 메모리 기법 : 페이징(paging), 세그멘테이션(segmentation) 페이징 (Paging) 고정크기로 분할된 페이지(page)를 통해 가상 메모리를 관리하는 기법 페이지(page) : 가상메모리를 고정 크기로 나눈 블록 프레임(frame) : 실제 메모리를 페이지와 같은 크기로 나눈 블록(= 페이지 프레임) 프레임과 페이지는 메모리를 일정한 크기의 공간으로 나누어 관리하는 단위이며, 프레임과 페이지의 크기는 같다.
[CS / 운영체제] 프로세스(Process)와 쓰레드(Thread)
·
Computer Science
프로세스 실행중인 프로그램 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것 데이터+메모리+쓰레드 쓰레드 프로세스 내에서 실제로 작업을 수행하는 주체 일반적으로 하나의 프로세스는 하나의 쓰레드 하나의 프로세스 내에서 둘 이상의 쓰레드가 동시에 작업을 수행하는 것 => 멀티쓰레드(자바 특징) 멀티프로세스와 멀티쓰레드 멀티프로세스 : 각 프로세스가 독립적인 메모리를 가지고 별도로 실행 멀티쓰레드 : 자신이 속한 프로세스의 메모리를 공유
[CS / 운영체제] 메모리 구조
·
Computer Science
메모리 구조 코드(Code) - 실행할 프로그램의 코드 데이터(Data) - 전역변수, 정적변수 스택(Stack) - 지역변수, 매개변수 힙(Heap) - 사용자의 동적 할당 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터(Data) 영역 프로그램의 전역변수와 정적변수가 저장되는 영역입니다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다. 전역변수(global variable) : 블록 외부에 선언되는 변수로 어느지역에서는 참조해서 사용할 수 있다. 프로그램이 종료되면 메모리에서 사라지는 장점이 있지만, 유지보수등의 관리가 어려워질 수 있다. 정적변..
[CS / 운영체제] 운영체제란?
·
Computer Science
운영체제란?(OS, Operation System) 시스템의 자원과 동작을 효율적으로 관리하는 소프트웨어 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어 등을 관리 종류 윈도우(Windows) 맥 OS(Mac OS) 리눅스(Linux) 기타 등등 운영체제의 위치 사용자 프로그램(Application)은 특정 운영체제에 맞춰서 만든다. 그러므로 한 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다. 하드웨어와 어플리케이션 사이에 운영체제가 위치하고 있다. 운영체제의 목적 처리능력 향상 : 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킨다. 반환시간 단축 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간을 단축시킨다. 사용가능도 향상 : 시스템을 사용할 필요가 있을 때 즉시 사용..