운영체제11 운영체제 프로세스 구조 프로세스는 Stack, Heap, Data, Code 이렇게 4부분으로 이루어져 있다. 그 중 Stack에 대해 자세히 설명하자면 아래와 같이 간단한 C언어 코드가 있다고 가정해보자. 위 코드로 프로세스의 Stack 부분에서 어떤 과정을 거치는지 알아보자. 우선 Stack은 코드에서 함수에 관한 부분을 처리하는 곳이고 Code는 컴파일한 코드를 처리하는 곳이다. 아래 그림은 Code부분의 일부분이다. (그림은 예시를 위해 C언어 코드로 써져있지만 기계어라고 생각해야한다.) int res부분은 그저 선언하는 부분이니까 넘어가고 res= add(1,2)부분을 만나면 함수에 관한 처리를 해야하니 Stack부분에서 처리를 하게 된다. 그럼 Stack부분이 아래 그림과 같이 된다. (Stack을 거꾸로 뒤집었다고.. 2020. 11. 25. 운영체제 인터럽트란? 인터럽트란 cpu가 프로세스를 실행하고 있을 때 입출력, 파일읽기, 예외사항 등이 발생하여 처리가 필요한 경우 cpu에 알려주는 것이다. 저번 포스팅에서 프로세스의 상태에 대해 설명했었다. 간략히 설명하자면 프로세스의 상태는 프로세스의 생성과 종료를 제외하면 ready, running, block 이렇게 3가지로 나타낼 수 있다. cpu가 프로세스를 실행도중 파일 읽기 같은 명령을 수행하게되면 프로세스는 block 상태에 돌입하게 되고 파일 읽기가 끝나면 다시 ready 상태로 돌아오게 된다. 그런데 파일 읽기가 끝난걸 어떻게 알까? 1) 여기서 파일 읽기가 끝났다는걸 운영체제에 알려주는게 인터럽트의 역할이다. 2) 이외에도 0으로 나누기 등의 예외사항 처리를 위해서도 인터럽트가 발생하게 된다. 3) 키.. 2020. 11. 24. 운영체제 프로세스의 상태 프로세스란? 우리의 프로그램들은 평소에 보조기억장치(HDD, SSD..)에 저장되어있다. 프로그램들을 사용하기 위해서는 메모리에 올려야 하는데 프로그램들이 메모리에 올라가 있으면 프로세스라고 한다. 하나의 응용 프로그램은 여러개의 프로세스로 이루어질 수도 있다. 프로세스의 상태 프로세스의 상태는 아래와 같이 5가지로 나누어질 수 있다. - new (프로세스가 생성) - exit (프로세스가 종료) - ready (프로세스가 CPU에 의해 실행되기전 대기상태) - running (프로세스가 CPU에 의해 실행되고 있는 상태) - block ( 특정 이벤트가 발생하여 대기상태) 이 5개 중 ready, running, block에 대해 조금 더 자세히 알아보자. 현재 어떤 프로세스가 cpu에 의해 실행되고 .. 2020. 11. 21. 운영체제 라운드로빈 스케쥴러 라운드로빈 기법이란 FIFO(First In First Out)형태에 시분할 시스템을 추가한 것으로 보면되는데 위와 같이 app1,2,3가 각각 완료하는데 2초, 3초, 2초가 걸리고 순서는 app1 -> app2 -> app3라고 가정하고 한번에 1초만큼씩 처리를 한다고 가정하면 1초가 지난 후에는 아래그림과 같아진다. 작업 완료까지 2초가 걸리는 app1을 1초만큼 작업한 후에 제일 뒤로 보내고 app1이 뒤로감에 따라 이제 제일 앞에 있는 app2를 작업할 차례가 되는 것이다. 이런식으로 계속 반복해나가는게 라운드로빈 방식이다. 2020. 11. 20. 이전 1 2 3 다음