분류 전체보기(89)
-
시스템 콜 과 커널
User Mode 프로그램 실행중에 인터럽트 (interrupt) 가 발생하거나 시스템 콜(systemcall)을 호출하게 되면 커널 모드가 실행된다 .(전환) Kernel Mode 프로그램의 현재 cpu 상태를 저장한다. 커널이 인터럽트나 시스템콜을 직접처리 즉, cpu 에서 커널 모드가 실행된다. 처리가 완료되면 중단됐던 프로그램의 cpu상태를 복원한다. kernel mode -> user mode 프로그램 이어서 실행된다 커널? 운영체제의 핵심 시스템의 전반을 관리/감독하는 역할 하드웨어와 관련된 작업 직접 수행한다. 함부로 하드웨어를 점유해서 사용하고 다른 프로세스 영향받고 붕괴 되기에 시스템을 보호하기 위해서 커널이 있다. 물리적 컴퓨터 ,즉 하드웨어 요소들을 os의 최하단, 기계를 상대하는 최..
2022.11.27 -
Garbage Collection 모니터링 방법
JVM에서 어떻게 GC가 수행되고 있는지 실시간으로 알 수 있는 방법을 소개하려 합니다. GC모니터링 전 ! 자바 실행 옵셥 주기(Option) 옵션 종류 메모리 공간 메모리 공간은 크게 힙영역과 힙영역이 아닌 공간으로 구분할 수 있습니다. 힙영역은 사용자가 크기를 정할 수 있는 공간입니다. Method : 클래스, 변수, 함수, 정적 변수, 상수 정보 등이 저장되는 영역. 프로그램 전체에서 공유 Stack : 함수 내에서 사용되는 매개변수, 지역변수, 리턴값 등이 저장되는 구역. PC Register: CPU의 Register와 역할이 비슷하고, 현재 수행중인 JVM 명령의 주소값이 저장 Native Method Stack: 네이티브 메소드 호출을 위해 할당되는 구역 Heap : new 명령어로 생성된..
2022.11.18 -
데드락
데드락이란? 교착상태 :여러 프로세스가 서로 다른 프로세스의 작업이 끝나기를 기다리다가 아무도 작업을 진행하지 못하는 상황을 교착상태라고 한다. ex) 퇴근길 (꼬리물기를 해서 도로가 마비 되었을 경우 앞에서 길을 터줘야 하는 데 이러지도 저러지도 못하는 상황이다 이럴때는 누군가가 길을 터줘야 한다,) =이게 발생하는 이유는 공유자원입니다. 퇴근 예시에서 공유자원은"도로"이다 공유 되는 도로를 서로 차지하려다가 교착상태가 발생하게 된다. ex)유명한 예시 / 식사하는 철학자 1.원형으로 된 탁자에 맛있는 음식이 있고 의자가세개가 있다 2.각자 앉아서 먹으려고 하는데포크는 3개이다. 3.음식을 먹으려면 2개씩 포크가 필요하다 4.한 철학자가 음식을 먹는 동안 다른 철학자가 기다린다. =이렇게 되면 문제가 ..
2022.11.16 -
프로세스 동기화
프로세스간 통신 : 프로세스는 독립적으로 실행되기도 하지만 다른 프로세스랑 데이터를 주고 받으며 통신 할수도있다 통신은 한컴퓨터 내에서 실행하고 있는 다른 프로세스랑 할수있고 네트워크와 연결된 다른 컴퓨터 프로세스랑도 할수았다 프로세스간 통신의 종류 첫번째 한컴퓨터 내에서는 프로세스간 통신을 하는 방법 파일과 파이플 이용하는 방법 파일: 통신을 하려는 프로세스들이 하나의 파일을가지고 읽고 쓰는 방법이다 파이프: 운영체제가 생성한 파이프를 이용해 데이터를 읽고 쓰는것이다. 두번째 쓰레드를 이용한 방법 쓰레드는 코드 ,데이터, 힙 영역을 공유하고 SKACK만 각각 자신의 것이 있다 DATA있는 전역 변수나 힙을 이용하면 통신이 가능히다. 세번째 네트워크를 이용한 방법이다. 운영체제가 제공하는 소켓통신이나 ,..
2022.11.15 -
CPU스케줄링 (2)
SJF(Shortest Job First) :Burst Time이 짧은 작업 먼저 한다. 이런 알고리즘을 만든다 , SJF(Shortest Job First) 만든다" 짧은 작업 먼저" 문제가 있다, 어떤 프로세스가 얼마나 실행될지 예측하기 힘들다 Burst Time이 긴 프로세스는 실행이 안 될수 있다. RR FIFO: 알고리즘은 시분활처리에는 어렵고 일괄처리에 적합하다 SJF: 프로세스의 종료시간을 예측하기 힘들다. RR(Round Robin) :가장 단순한 FIFO알고리즘에서 단점을 해결해서 나온것 , 먼저 들어온 프로세스가 끝나야 다른 프로세스가 시작이 된다는 문제점을 해결하기 위해서 할당시간을 지정하고 할당 시간이 지나면 강제로 다른 프로세스에게 일정시간 만큼 CPU를 할당한다, 강제로 CPU를..
2022.11.14 -
CPU스케줄링
CPU스케줄링 개요 컴퓨터자원 : 필수장치인 (CPU,메모리) 그리고 주변장치로는 (하드디스크나 , 키보드 , 마우스) 있다. CPU ;프로그램을 실행시키면 메모리에 프로세스가 생성되고 각 프로세스에는 1개 이상의 쓰레드가 있습니다. 프로세스들은 CPU를 차지 하기 위해 운영체제의 명령을 기다리고 있습니다. CPU 스케줄링: 운영체제는 모든 프로세스에게 CPU를 할당/해제 하는데 여기서 스케줄러(운영체제) 가 고려해야 할 사항은 두가지가 있다. 어떤 프로세스에게 CPU리소스를 줘야 하는가?( 메모리에는 수많은 프로세스들이 있는데 어떤 프로세스에게 CPU프로세스를 줘야 하는 가? , 하나만 주면 다른 프로세스 불만이 있다) CPU를 할당 받은 프로세스가 얼마의 시간동앞 CPU를 사용하는가? 오늘날은 시분활..
2022.11.14