목록운영체제 (5)
제이슨의 개발이야기
안녕하세요 오늘은 프로세스 상태 와 계층 구조에 대해서 공부하려고 합니다! 그동안 운영체제 공부를 하셨다면 프로세스는 다양한 상태를 거치면서 실행된다는 것을 알고 게실겁니다! 생성단계 프로세스를 생성 중인 상태를 생성 상태(New)라고 합니다 이제 막 메모리에 적재되어 PCB를 할당받은 상태를 말합니다 생성상태를 거쳐 실행할 준비가 완료된 프로세스는 곧바로 실행되지 않고 준비 상태가 되어 CPU의 할당을 기다립니다 준비단계 준비상태는 당장이라도 CPU를 할당받아 실행할 수 있지만 아직 자신의 차례가 아니기에 기다리는 상태입니다. (준비상태에서 실행상태로 전환되는 것을 디스패치(dispatch)라고 합니다 실행상태 실행상태는 CPU를 할당받아 실행중인 상태를 의미합니다 이때 프로세스가 할당된 시간을 모두 ..
오늘은 Context Switching 문맥교환에 대해서 공부하고자합니다! 저번 시간에 프로세스가 CPU 자원을 점유하여 작업한다는 이야기를 간략하게 한적이 있습니다 자원을 점유한 프로세스는 작업을 끝날때까지 게속 하는 것이 아닌 우선순위 또는 시간 제한이 있어서 시간이 넘어가면 해당 프로세스는 작업을 중단해야 합니다 중단할때 그냥 중단하는것이 아닌 그동안 작업한 내용을 PCB에 저장하는 과정을 거칩니다 그리고 새로 작업을 시작하는 프로세스의 PCB에 시작해야 할 작업의 지점을 가저오는 과정을 거칩니다 이러한 과정을 Context Switching(문맥교환) 이라고 합니다 정리하자면 기존 프로세스의 Context을 PCB에 백업하고 새로운 프로세스를 실행하기 위해 문맥을 PCB로 부터 복구하여 새로운 프..
안녕하세요 오늘은 프로세스에 대해서 공부해보려고합니다! 프로세스는 무엇인가? 이 질문은 기술 면접에서 가장 기본중에 기본적인 기술 면접 질문입니다 프로세스는 무엇인가? 프로세스는 간단하게 말하면 실행중인 프로그램을 프로세스 라고 합니다 실행중인 프로그램 == 프로세스. 이 문장은 굉장히 중요한 문장입니다 실행중인 프로그램이 프로세스라는 것은 보조기억장치(하드디스크 등)에 있는 프로그램은 단순 데이터 덩어리라는 것을 의미하기 때문입니다 예를 들면 메모장을 키고 싶어서 메모장을 실행 시키면 보조 기억 장치에 있었던 메모장 프로그램을 메모리에 적재 하고 실행 시키는 순간 프로그램은 프로세스로 바뀌게됩니다 이 과정을 프로세스를 생성한다라고 표현 할 수 있습니다 프로세스에 대해서 공부를 했다면 그 다음에 프로세스..
안녕하세요 오늘은 System Call 에 대해서 공부해보고자 합니다! 저번 시간에 운영체제에 대해서 공부 했었습니다 그때 커널 모드와 사용자 모드가 있다는 것을 공부했는대 이 커널 모드 와 사용자 모드에 대해서 좀 더 이야기 해보고자 합니다 일단 커널 모드 와 사용자 모드 두가지 모드로 나눈 이유는 프로그램이 마음대로 CPU 자원을 쓰는 것을 막기 위해서 입니다 운영체제가 직접 어떠한 규칙과 순서에 맞춰서 프로그램에 자원을 배분해야지 프로그램 마음대로 자원을 쓰게 될 경우 진짜 중요한 프로그램이 자원을 사용하지 못해 문제가 발생할 수 있기 때문입니다. 그래서 사용자 모드로 실행되는 프로그램은 시스템 자원을 접근 할 수 없습니다 커널모드는 사용자 모드와 다르게 운영체제 서비스를 제공 받을 수 있습니다 즉..