OS
-
OS - 은행원 알고리즘CS/OS 2021. 2. 20. 19:37
은행원 알고리즘 은행원 알고리즘 이란? 교착상태 회피 알고리즘이다. OS는 안전상태를 유지할 수 있는 요구만을 수락하고 불안정한 상태를 초래할 사용자의 요구는 나중에 수락할 수 있는 상태가 될때까지 계속 거절한다. 동작 과정이 은행에 돈을 빌리러 온 고객들과 돈을 빌려줄 은행의 관계와 유사하다. 안전상태 안전상태: 시스템이 교착상태를 일으키지 않으면서 각 프로세스가 요구한 최대 요구량만큼 필요한 자원을 할당해 줄 수 있는 상태이다. 불안전상태: 교착상태이기 위한 조건중에 하나로 불안전 상태에서만 교착상태가 발생한다. 그러나 불안전 상태라고 해서 무조건 교착상태가 발생하는 것은 아니다. 시스템이 항상 안전상태를 유지할 수 있게 하는 것이 바로 은행원 알고리즘이다. 은행원 알고리즘 필요 요건 Max: 각 고..
-
JAVA - 접근 제어자CS/Java 2021. 2. 17. 19:40
접근 제어자 private private이 붙은 변수, 메소드는 해당 클래스 에서만 접근이 가능하다. default 접근 제어자를 별도로 설정하지 않는다면 해당 패키지 내에서만 접근이 가능하다. protected protected가 붙은 변수, 메소드는 해당 패키지 내 또는 패키지 내의 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능하다. public public이 붙은 변수, 메소드는 어떤 클래스에서라도 접근이 가능하다. reference velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C#java wikidocs.net/232
-
OS - CPU스케줄링CS/OS 2021. 2. 16. 20:16
CPU 스케줄링 CPU 스케줄링 CPU와 같은 자원을 우선순위에 기반하여 프로세스에 할당하는 방법을 말한다. 이때 사용되는 Queue에는 세 가지가 있다. Job Queue: 현재 시스템 안에서 돌고 있는 프로세스를 의미한다. Ready Queue: 메모리 안에서 CPU의 할당을 기다리는 프로세스를 의미한다. Device Queue: 장치 입출력을 기다리고 있는 프로세스를 의미한다. 스케줄러의 종류 장기 스케줄러(Job 스케줄러) 어떤 프로세스를 메모리에 먼저 적재할 것인지 결정한다. 단기 스케줄러(CPU 스케줄러) CPU 스케줄링. 메모리에 올라온 프로세스들 중에서 어떤 프로세스를 먼저 CPU의 할당을 받게 할지 순서를 결정한다. 중기 스케줄러(Swapper) 자원 고갈 등의 이유로 메모리에 적재된 프..
-
OS - 프로세스와 쓰레드CS/OS 2021. 2. 15. 20:52
프로세스와 쓰레드 프로세스 실행중인 프로그램으로 메모리에 적재되어 CPU자원의 할당을 받을 수 있는 것을 말한다. 쓰레드 프로세스의 작업 실행 단위로 프로세스에 할당된 메모리, 자원을 공유할 수 있다. 쓰레드 간에는 각자 독립적인 작업을 수행하기 때문에 각각의 스택과 레지스터를 가진다. 프로세스의 메모리, 자원등을 공유하므로 커널의 도움 없이 상호 통신이 가능하다. 사용자 수준의 쓰레드: 사용자가 만든 라이브러리를 사용하여 쓰레드를 운용한다. 속도는 빠르지만 구현이 어렵다. 커널 수준의 쓰레드: 운영체제의 커널에 의해 쓰레드를 운용한다. 구현이 쉽지만 속도가 느리다. 멀티 프로세스 다수의 프로세스를 실행하는 것이다. 멀티 프로세스는 프로세스 간 데이터, 힙, 스택영역 모두를 비공유 한다. 장점 하나의 프..
-
OS - 메모리CS/OS 2021. 2. 9. 21:04
메모리 메인메모리 프로그램이 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 다수의 프로세스들이 나누어 사용할 수 있도록, 서로의 영역을 침범하지 않도록 유지해야 한다. 이와 같은 기능을 OS에서 제공한다. 프로세스 메모리 구조 stack영역: 함수 호출과 관계되는 지역변수, 매개변수가 저장된다. 함수 호출 시 생성되고 함수가 끝나면 반환된다. 메모리의 높은 주소부터 할당된다. heap영역과 같은 공간을 공유한다. heap영역: 메모리를 동적으로 할당할 때 사용하는 메모리 영역으로 동적 메모리 영역이라고 부른다. 메모리의 낮은 주소부터 할당된다. stack영역과 같은 공간을 공유한다. data영역: 전역 변수, 정적 변수, 배열, 구조체 등이 저장된다. 프로그램이 실행될 때 생성되고 프로그램이 종료..