
안녕하세요 :) 이번 포스팅에서 다루어볼 주제는 Virtual memory(가상 메모리) 입니다. 지난시간 우리는 프로세스를 각각의 덩어리로 나누지만 전부를 메모리에 올려 사용하는 simple 페이징기법과 세그멘테이션 기법에 대하여 알아봤습니다. 이번 포스팅에서는 프로세스의 조각을 전부 올리는것이 아니라 최소한의 조각만 올렸다가 필요해지면 다른조각을 올려서 사용해보겠습니다. 그런데 본질적으로 이상하죠? 메모리에 프로세스 일부분만올라갔는데 메모리 폴트가 안나고 실행이 가능하다? 가능합니다! 실제로 메모리 참조는 런타임(일부분이 실행될때)에 물리주소로 바인딩되기 때문입니다. 그러니 실행되는 그 순간에만 실행되는 일부분이 물리메모리에 올라와 있다면 된다는것이죠! 그로인해 프로세스는 조각조각 나뉘어서 메인메모리..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 메모리 관리 입니다. 페이징 기법이니 세그먼테이션 기법이니 뭐니 사실 어려워요... 수업 들을때 잘 들어오지도 않는 내용을 우겨넣을라고 열심히 노력했던거 같네요! ㅎ 그래도 깔끔하게 정리해서 완벽히 제꺼로 만들기 위해 노력해보겠습니다. 이번 포스팅에서 다룰내용은 메모리에 관한 이야기 입니다. 사실 다음포스팅도 메모리에 관련된 이야기를 할것 같습니다. 메모리를 쪼개고 쪼갠거에 알맞게 프로세스를 올리고 할것인데요!! 그럼 도대체 메모리를 왜 쪼갤까요? 이유는 리소스의 효율을 높이고, 여러 프로세스를 올리기위해서 메모리를 분할하는것입니다...! 이제부터 메모리 관리와 여러가지 기법에 대해 다루며 메모리를 효율적으로 사용하기위해 운영체제가 어떤일을하는지 한번 알아..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 Deadlock과 Starvation입니다. 지난 포스팅이후로 운영체제 카테고리를 정말 오랜만에 다루어 봅니다. 게으름뱅이 체질은 역시 힘드네요 ㅎ.. 하지만 이제 운영체제과목 기말고사를 앞두고 있기도합니다. 펜만잡고 공부하는것 보단 블로그포스팅을 하면 조금더 정확하게 내용을 정리하고자 노력하니까 머리에 잘 들어오는것 같습니다. 서론이 길었네요! 이번 포스팅은 Deadlock과 startvation에 대하여 다루어볼것입니다. 지난 포스팅에서도 프로세스를 교체해야 하는상황을 다룰 때나 프로세스의 상태정보를 다룰때 조금씩 언급했던것 같습니다. 이번 포스팅에선 조금더 상세하게 다루어 보겠습니다. principles of Deadlock (데드락의 원리 or 원칙..

안녕하세요 :) 운영체제를 주제로 한 다섯번째 포스팅은 Mutual Exclusion(상호배제) 에대하여 다루어 보겠습니다. 이번 포스팅에서는 공유 자원에서의 충돌을 방지 해주기 위한 상호 배제와 이에 관련한 내용에 대하여 다루어볼것입니다. 예제로 비교적 C언어 코드가 많이 사용될 예정입니다. 먼저 이번장을 들어가기전 꼭 알아두어야 할 용어들이 몇가지 있습니다. 그 용어들을 정리해보겠습니다. -atomic operation, 아토믹 하면 원자의 이런뜻입니다. 쪼개지지가 않는 operation을 말합니다. -critical section, 프로세스내의 코드 영역으로 공유자원(네트워크 프린터 같은)을 엑세스하는 부분을 말합니다. -deadlook, 2개 이상의 프로세스가 전진하지 못하는 상황, 어영부영 기다..

안녕하세요 :) 운영체제를 주제로 한 네번째 포스팅은쓰레드에 대하여 다루어 보겠습니다. 4.1)processed and threads 프로세스의 두가지 특성 -resource ownership - 메인메모리 파일권한 프린터권한 등 -sheduling/execution - 수행의 단위로서 4장부터는 리소스의 오너쉽에서는 프로세스라는 단위로 사용하고 수행의 단위에선 라잇 웨이!(로니콜먼)프로세스 또는 스레드라는 단위로 사용될것입니다. 수행의 단위가 스레드가 된다는것은 레디큐에 들어가는 단위가 프로세스가 아닌 스레드가 된다는것 입니다. 지난 포스팅까지 공부한 내용에서는 한프로세스내에 한 스레드가 들어있는 단위로만 프로세스를 생각했습니다. 하지만 이번 포스팅부터는 한 프로세스내에 여러 스레드가 들어있을수 있고 ..

안녕하세요 :) 운영체제를 주제로 한 세번째 포스팅은 프로세스의 정의, 상태, 컴포넌트에 대하여 다루어보겠습니다. 3.1) what is process? 실행되고있는 프로그램을 프로세스라고 간략하게 말할수 있습니다. 프로세스의 요소 세가지도 저번 포스팅에서 code, data context라고 말씀드렸습니다. 프로세스는 다음과 같은 요소들로 특성지을수 있습니다. identifier - 학번같은느낌으로 관리를 위한 번호를 부여합니다. state - 상태정보 priority - 중요도 program counter - 프로그램카운터 memory pointers context data I/O state information Accounting information process control block(PCB)..

안녕하세요 :) 운영체제를 주제로 한 두번째 포스팅입니다. 이번 포스팅에선 운영체제에 대하여 객체또는 함수, 운영체제의 역사 구조 등을 전반적으로 다루어 보겠습니다. 2.1) Operting system objectives and function 편의성, 효율성, Ability to evlove(새로운 서비스나 결함을 업데이트해줌) 유저/ 컴퓨터 사이의 인터페이스 이다. 해주는일 - program development - program execute - 입출력 장치 접근 - 파일 접근 컨트롤 운영체제는 소프트웨어 구조에서 제일 및단에 있는 소프트웨어 이다. 운영체제는 자원들의 매니지먼트를 담당한다. 운영체제는 막강하다- 운영체제는 우리의 프로그램을 죽일수 있지만 우리의 프로그램은 운영체제를 죽일수 없다...

안녕하세요 :) 운영체제를 주제로 한 첫번째 포스팅입니다. 이번 포스팅에선 전반적인 컴퓨터 시스템에 대하여 내용정리와 함께 슥 훑어 보겠습니다. Operating System(OS)가 수행하는 세가지 일은 다음과 같습니다. - Exploits 활용 - provides 제공 - Manages 관리 위 그림은 각각의 자원들의 구성들과 각 자원들이 시스템 버스를 통해 소통한다는것을 알려주고 있습니다. 1. Basic Elements 1.1) processor - 프로세서는 말그대로 처리기를 뜻하며 데스크탑에서는 CPU가 이역할을 수행합니다. 1.2) Main memory - 휘발성 메모리인 RAM 하드웨어를 사용하며, 프로세서가 처리해줄 프로그램들의 이 미지를 저장해 둡니다. 주 기억장치라고도 합니다. 1.3..