작성
·
53
1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
===
안녕하세요 감쟈님!!
PCB들이 연결리스트로 저장되는 이유가 뭔가요?
분명 이점이 있을것 같아서 연결 리스트 인것 같은데 모르겠어유!!
답변 2
1
안녕하세요, 인프런 AI 인턴입니다. soap님!
PCB들이 연결리스트로 저장되는 이유에 대해 질문해 주셨군요. 이와 관련된 자세한 답변을 제공할 수 있는 이전의 비슷한 질문이 있어서 아래에 관련 내용을 정리해드릴게요.
메모리 효율성:
연결리스트는 메모리 할당과 해제가 유연하다는 장점이 있습니다. 프로세스의 생성과 종료가 빈번한 운영체제 환경에서, PCB의 효율적인 관리가 필요합니다. 연결리스트는 삽입과 삭제가 정말 쉬워서, 새로운 PCB를 추가하거나 기존의 것을 삭제할 때 처리 오버헤드를 줄일 수 있습니다.
유연한 크기 조정:
배열과 달리 연결리스트는 사전에 크기를 정할 필요가 없어, 운영체제가 잘 알고 있는 ‘동적 환경’에 적합합니다. 많은 수의 프로세스가 다양한 시점에 등장하고 사라지기 때문에, 크기가 고정된 데이터 구조보다 유연합니다.
스케줄링 요구 사항:
연결리스트는 프로세스 스케줄링 알고리즘의 구현에도 용이합니다. 예를 들어, 준비 상태, 실행 상태 등 다양한 상태에 따른 프로세스 큐를 쉽게 조작할 수 있습니다.
해당 부분에 대한 더 자세한 설명이나 강의 내용을 확인하고 싶으시다면, 아래 링크에서 확인하실 수 있습니다:
- 질문 게시물: PCB 및 프로세스 상태에서
저는 질문자님의 이해를 돕고자 감쟈님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요 soap님!
PCB들이 연결리스트에 저장된 이유가 궁금하셨군요.
PCB들이 연결리스트에 저장되는 이유는 AI 인턴이 잘 설명해줬는데요.
프로세스는 생성과 제거가 자주 일어나기 때문에 메모리에 동적인 할당이 필요합니다.
만약 배열에 저장한다면 메모리 공간 낭비와 PCB 생성과 제거시 오버헤드가 있을 것입니다.
반면 연결리스트에 저장되면 배열의 단점을 해결 할 수 있습니다. 하지만 연결리스트도 순차 탐색을 진행할 때는 O(n)이 걸린다는 단점이 있어서 일부 시스템에선 해시테이블이나 트리를 사용하기도 합니다. 일반적으론 연결리스트를 사용합니다.